Ros从入门到精通 篇五:Ros端口转发及完美回流,配合DDNS,简直无孔不入!!!----下篇
创作立场声明:家用Ros从入门到精通系列教程最新开放的专栏,本篇更多的是针对准备入门或刚入门的新手朋友观看,老白与大佬不喜勿喷哦,同时也建议各位多给建议,再次感谢大家。
追加修改(2020-05-05 10:50:05):
补充说明:
IP--Firewall创建好jump回流指令后,双击进入指令,点击右侧菜单栏Comment,我们需要创建一个注释,输入dynamic_nat(与scripts的命名一致),这步非常重要,不添加注释IP无法自动更新。
前言
大家好,我是大斑马,曾经踩坑无数,如今填平归来,作为一枚老白,谈不上技术人才,仅凭一腔热血及爱好给大家带来一些分享总结,望大家多多支持哈,不喜勿喷,手下留情,多多指导,相互学习,感谢。
今天开始给大家带来家用Ros从入门到精通系列教程,分别为《Ros下载与安装》、《Ros基本配置及拨号上网》、《Ros DDNS设置》、《Ros端口转发设置及完美回流方案(2种方案)》、《Ros VPN设置及使用(L2TP与IKEV2)》、《未完待续》。
本系列所有教程里有原创也有引用,引用部份会注明出处,在此感谢填坑路上遇到的各路大神,感谢!同时作为个人总结与分享也希望大伙多多指导,交流与相互学习比啥都重要,你说对吧?
引言
在前面的教程中,分别教会了大家如何建立Ros、如何简单配置Ros使其正确上网以及Ros利用阿里云域名绑定动态IP(DDNS),还不清楚的朋友可以先去看我前面的教程:
通过《篇三:Ros之DDNS配置》教程我们已经成功绑定了我们的动态IP,无论IP如何改变,都可以利用我们的域名无孔不入,本篇可以说是篇三的下集,要想实现无孔不入(外网访问内网以及即将面世的篇五:Ros的VPN设置,全世界回家),除了需要域名作为地址外,还需要做内网的端口转发以及回流,所以本篇有承上启下的作用哦,请大家耐心看完,因为。。。非常重要啊!!!
教程开始
本篇Ros端口转发及完美回流将介绍2种方法,这2种方法是目前我试过N种方法中,最奏效的,因此分享给大家,方法分别为:
Ros自带的cloud功能实现端口转发及回流(上篇内容)
Ros的Jump命令实现端口转发及回流(下篇内容)
特此申明:
这两种方法均非本人首创,但经本人优化调整,效果更好。前人栽树,后人乘凉。方法1,感谢vediotalk大神,提供了很好的思路,但是回流还有些小问题,因为做了补充优化;方法2,感谢blanksign大神(国内无相关链接),同样提供了很好的思路,但是大神是技术型人才,一心专研技术,没有更多的精力做出好的教程,所以我根据blanksign大神的思路,做了全面的分解动作,并在其中做了些许优化调整。总之再次感谢vedio talk与blanksign两位大神,感谢!!
本篇为下篇,着重介绍方法二
Ros的Jump命令实现端口转发及回流
此方法适用于任何版本的Ros系统,没有版本限制,更没有功能上的局限,非常好用,效果也是杠杠的哦,废话不多说,我们正式开始。
同样,我们用winbox软件进入Ros后台:
然后点击IP-Firewall:
上菜单栏点击nat,然后点击加号:
在弹出来的界面点击General,Chain选项选择dstnat:
接着在上菜单栏选择Action,然后在下面的Action选择jump,在往下找到Jump Targer输入一个名称,这里大家随意,我填port-nat,最后点击OK:
接下来我们去建立一条脚本,点击System-Scripts:
在上菜单栏点击Scripts,然后点击加号,在弹出来的界面中,Name输入一个名称,这个名称很重要,一定要记住,我建议新手朋友跟我一样就行,省的后面还要改脚本,我这里填入dynamic_nat,在下面的代码框输入我给大家提供的脚本代码:
:global addold
:global addnew
:set addnew [/interface get [/interface find name="pppoe-out1"] running]
:if ($addnew=true) do={
:set addold [/ip address get [/ip address find dynamic=yes interface="pppoe-out1"] address]
:set addold [:pick $addold 0 ([:len $addold ] -3)]
/ip firewall nat set [/ip firewall nat find comment="dynamic_nat"] dst-address=$addold
}
脚本中需要改3处地方,分别给大家加粗了,前两处改动的就是你拨号的名称,大家根据自己的命名来修改,看下图:
第三处就是我们新建的这个scripts的名称,如果大家跟我同样的命名,就不需要改了,最后点击OK:
紧接着我们需要让它定时启动,但是这次我们不用定时任务功能(scheduler),我们用PPP里的Profiles来执行,这样的好处就是,跟拨号捆绑在一起,只有重新拨号,IP肯定会改变,IP一改变,马上检索到变化并赋值给nat,非常高效及时,大家跟着我操作。
回到Ros主界面,点击左菜单栏PPP:
在弹出的界面点击Profiles,然后点加号,接着在Name输入名称,这里大家可以随意填写,我写的是pppoe-clien-profile,但是可以跟我一样,在下面的Change TCP MSS勾选yes,一定要勾选上,别忘了:
然后点击上菜单栏Scripts,在下面输入我给大家提供的代码:
delay 3s
:execute "dynamic_nat"
加粗部份需要改成你刚才设置Scripts时的命名,如果大家一直跟我保持一致,就不需要改动了,直接复制进去就好;另外,这里解释一下这段代码,意思就是每当重新拨号,3秒中后系统就会执行以dynamic_nat命名的Scripts脚本,总的来说,就是跟拨号捆绑在了一起,非常舒服,及时性很高哦。设置完点击OK即可:
我们一直在强调跟拨号捆绑,但是以上做的设置都是为捆绑做准备,那好,接下来我们把它们捆绑起来,点击左侧菜单栏,点击Interfaces:
进入界面后我们选择上菜单栏的Interface,然后找到我们的拨号条目,不清楚如何拨号的新手朋友可以去看一下我篇二的内容,接着双击进入,在上菜单栏找到Dial Out,接着在下面的Profile选项选择我们刚刚建立的pppoe-clien-profile,然后其他选项不动,点击OK:
好了,到这里我们的jump指令设置(实现回流),以及捆绑拨号(实现自动、高效且及时的检索变动IP)已经完成了,接下来就是做端口转发啦!!!
我依旧跟《篇四:上篇》一样,以群晖web为例。
跟《篇四:上篇》说的一样,我们后续所有的端口转发都在nat下设置,点击IP-Firewall:
点击nat,再点击加号,在弹出来的页面点击General,Chain选择刚才我们设置jump时的命名,我之前命名为port-nat,选择它,Protocl选tcp(常用类型tcp与udp,视你转发的目的为准),Dst。Port输入你外网自定义的端口号,你输入啥你访问的时候域名后就加啥,举例,我这里写5000,那么访问群晖WEB的时候就是www.gxvivo.cn:5000:
接着我们点击上菜单栏Action,在下面的Action选择dst-nat,然后在下面To Addresses输入你将要转发项目的内网IP,我的群晖IP是10.10.10.10.,所以把它填进去,根据你的具体情况来填写,To Port输入你要映射的内网端口,这里的端口可不能乱写,要根据你将要转发的项目规定的端口来填写,群晖WEB的端口是5000,window系统的远程访问端口是3389等等,这些都是项目规定好的端口,这里要注意哦,最后点击OK:
好了,群晖WEB5000端口转发到外网5000端口就做好啦,你就可以通过域名:5000 ,在外网访问你的群晖啦,同时,回流也完美设置,你在内网同样可以通过域名:5000来访问哦(在内网还用啥域名访问。。。可是有些朋友就是有强迫症哈,不知道你是不是,反正我是。。。)
怕新手朋友看得有写晕,我这里再举一个端口转发win10的设置:
我win10做下载机,经常需要在公司远程连接,进行下载任务,所以外网访问我内网虚拟机搭建的win10很重要哦,win10内网IP为10.10.10.50,外网自定义端口设置为45678,内网远程访问端口为3389。
总结
本篇《篇四(五):Ros端口端口转发及完美回流》下篇,已经结束啦,建议朋友们上篇与下篇都耐心看完,绝对对你有所帮助。如果有任何问题都可以留言给我,我都会一一回复,同时,如果你有更好的方法,或者我的方法有问题,都可以给我留言哦,分享希望得到认可,同时也希望得到进步。不忘初心,我还在路上,加油!!!
最后千千千万别忘了点赞点赞点赞,收藏收藏收藏,有碎银子也别吝啬哦,哈哈哈哈,再次感谢大家!!!
EXSI
校验提示文案
zhaoyanc
校验提示文案
czyufeng
校验提示文案
天之蛋
校验提示文案
Finley凌
这个啥时候出啊,好期待啊
校验提示文案
zhumk66
校验提示文案
丢丢的生活记录
校验提示文案
闪闪的明月
校验提示文案
dop_
校验提示文案
天之蛋
我的情况有点区别,是单线多拨,目前了解下来,所有的方法几乎都不太适用,不知道大佬有相关的解决方案吗。
校验提示文案
值友8926672508
我的做法就比较简单粗暴,效果也不错。就是端口转发做好以后,不管回流。直接做dns劫持就好。ros的话就是dns里加入static,分别贴出域名和对应的内网ip。如果dns指向openwrt这类的旁路由,就在旁路有的hosts文件里加几行就可以了。简单,效果也不错。
校验提示文案
Pan1980
校验提示文案
加辣俾海盗
校验提示文案
望月星刀
1、端口回流:firewall-general选择srcnat,下面src.address填内网IP段比如192.168.1.0/24,out.interface选内网端口,我这里是组的网桥,就选的bridge1,然后action选择masquerade,OK就行了,然后可以comment添加一条注释,比如“回流配置”。不知道原理是什么,但是目前用起来一切正常。
而且他还教了一个脚本,可以直接在ppoe上绑定配置做腾讯云的DDNS。
楼主可以去研究下。
校验提示文案
值友1081006514
ip--firewall---nat---新建 ---Genral---Chain---srcnat--- Src。Address---xxx.xxx.xxx.xxx----Action--- masquerade ---ok
这是我优化完的,原本是要加端口号、以及 out interface 的我端口太多了懒得加 也管用!
校验提示文案
超地图炮
校验提示文案
EXSI
校验提示文案
值友8612718051
校验提示文案
badmeow
校验提示文案
值友1081006514
只需要更改 Src.Address “xxx.xxx.xxx.0/24”(CIDR)---不带双引号哦,out.Interface----LAN口(如果是桥接设置桥接口)
-----完整步骤-----
ip--firewall---nat---新建 ---Genral---Chain---srcnat--- Src。Address---xxx.xxx.xxx.0/24 Out.Interface----ether3( 或 bridge1) ----Action--- masquerade ---ok
校验提示文案
ddhsa
校验提示文案
值友3214197815
校验提示文案
鄂北渔夫
校验提示文案
值友1520830252
/ip firewall nat
add action=jump chain=dstnat dst-address=27.37.51.73 jump-target=port-nat log=yes
add action=dst-nat chain=port-nat dst-port=5001 protocol=tcp to-addresses=192.168.20.7 to-ports=5001
校验提示文案
值友3382590267
校验提示文案
wind790221
确定是主路由的问题后,就逐项查找设置的问题。
本人外网是电信的光纤PPPoE拨号上网,有电信的公网地址,设置了DDNS,为了方便访问内网,设置了端口转发。知道这些设置完成,米家的智能设备还都可以正常。
当我按照网上的脚本,在ROS系统开启端口回流后,上述那些米家的智能设备工作异常,新添加设备无法联网,已添加的设备经常离线。请教大神这种情况大概是什么原因,如何解决?
校验提示文案
大熊本熊
校验提示文案
骑乌龟追兔子
校验提示文案
值友8089156177
校验提示文案
Joker95
校验提示文案
张麻子没有昵称
校验提示文案
值友1081006514
发夹式NAT
发夹式网络地址转换 ( NAT Loopback ) 是 LAN 上的设备能够通过网关路由器的公共 IP 地址访问 LAN 上的另一台机器。
校验提示文案
值友1081006514
***------原文
Hairpin NAT
Hairpin network address translation (NAT Loopback) is where the device on the LAN is able to access another machine on the LAN via the public IP address of the gateway router.
校验提示文案
值友1081006514
只需要更改 Src.Address “xxx.xxx.xxx.0/24”(CIDR)---不带双引号哦,out.Interface----LAN口(如果是桥接设置桥接口)
-----完整步骤-----
ip--firewall---nat---新建 ---Genral---Chain---srcnat--- Src。Address---xxx.xxx.xxx.0/24 Out.Interface----ether3( 或 bridge1) ----Action--- masquerade ---ok
校验提示文案
值友1081006514
ip--firewall---nat---新建 ---Genral---Chain---srcnat--- Src。Address---xxx.xxx.xxx.xxx----Action--- masquerade ---ok
这是我优化完的,原本是要加端口号、以及 out interface 的我端口太多了懒得加 也管用!
校验提示文案
值友1081006514
校验提示文案
eBusinesser
校验提示文案
cjguo
校验提示文案
值友6895159996
校验提示文案
piku
校验提示文案