我用ROS实现不了这样的地址映射,是不是不可能的?
本帖最后由 arainbow 于 2018-3-24 23:11 编辑各位高手,是这样的:我在宽带拨号的(PPPOE方式)接口上做了端口映射,映射到内网 某地址:端口,并且使用动态域名,这样我用手机(3G、4G等)在外,通过动态域名和ROS的映射可以访问内网某服务。
如果手机直接在内网,就是直接访问内网的服务,也是完全可以的。
如果我在内网,又想使用动态域名获取外部IP,然后直接在内网访问路由器自己的外网IP,用ROS再映射回到内网的另一地址地址和服务端口,怎么设都没办法成功。
这么做是为了不用切换手机的配置了(在域名和内网IP之间改来改去),有什么好办法吗?
先srcNAT,再dstNAT。
不过不建议这么做,最好设置DNS。 前提要外网是公网IP才能实现。 yunhao 发表于 2018-3-25 09:58
先srcNAT,再dstNAT。
不过不建议这么做,最好设置DNS。
我试过好像设置失败了。我再尝试下看能不能成功。
本帖最后由 arainbow 于 2018-3-25 19:15 编辑
已经完美解决。
问题提交到论坛,如果解决了,一定要把方法告诉大家,相互交流下,才能促进相互提高。
这步是必须的,在IP-FIREWALL-NAT中先要增加一条DST-NAT规则,这个规则大家肯定都会。为了尽管不影响其它功能,这里设的限制多些,网段、BRIDGE、端口都限定一下,如下:
如果只是在ROS中看LOG、看记数器,是查不出问题所在的。因此,在ROS中用PACKET SNIFFER,然后STREAM到PC上的WIRESHARK中,看数据包到底去哪里了,到哪一步了。
经检查,数据已经NAT并发送到了目标设备。目标设备的回包也已经发出,但是是以自己IP为源地址的。回包既然已经发出,但不能被手机设备收到,是为什么?原来回包是在BRIDGE中传输的,手机收到的包的源地址并不是自己期望收到的公网地址,因此会丢弃。
需要再增加SRCNAT转成外网IP?试了多次也不行,根本不激活。如果能激活,由于公网IP会随拨号经常变化,还要做脚本,也是很麻烦的事情。
怎么办呢?见证奇迹的时刻到了,强大的ROS,可以满足我们的一切需要。
原来 BRIDGE中有一项设置,可以让BRIDGE中的数据,也经过IP FIREWALL处理一下,只需要打个勾,简简单单!!一切都在下图中:
搞定 !! 功能一切正常,而且不需要再多的设置了。
希望此文对有需要的朋友们有帮助。
好的,谢谢楼主无私的分享,受教了! srcnat中选masquerade,Src.address填0.0.0.0/0就可以实现回环了。
谢谢楼主的分享,我也试试。 网上菜鸟 发表于 2018-4-10 01:13
srcnat中选masquerade,Src.address填0.0.0.0/0就可以实现回环了。
这个地方,src.address是用来匹配源IP地址的,如果不填写的话,匹配的是所有地址,也就是0.0.0.0/0,所以设成0.0.0.0/0,应该是没意义的。
您這應該是Hairpin NAT 沒設
加上下面那規則應該就可以了192.168.1.254是Gartway IP
;;; HairPin NAT
chain=srcnat action=src-nat to-addresses=192.168.1.254
src-address=192.168.1.0/24 dst-address=192.168.1.0/24 log=no log-prefix=""
LZ这个一开始貌似没说是桥接的。但实际上非桥接的时候也会有这个问题。此时若用LZ的办法应该是行不通的(不过LZ对问题的分析是正确的)。关键是内网访问时要在路由也做一次srcnat。 自己在内网,通过wan获得的ip访问 端口转发,
办法是 做这个nat: extra 这个选项卡 dst-address-type=local
页:
[1]