192.168.0.1.路由器登录教程网

内网用公网IP访问NAS卡死?实测NAT回流故障

那天我把NAS的端口映射到公网,在办公室里用手机流量访问一切正常,可回到家连上WiFi,输入域名却转圈几分钟后超时。一开始以为是DNS解析出问题,后来发现手机断开WiFi用流量又能秒开——问题就出在家里路由器自己身上。

这类故障叫NAT回流或Hairpin NAT。当内网设备试图通过公网IP或域名访问内网服务器时,请求会先到路由器,路由器做NAT转发到内网服务器,但回应包不知道该怎么回到源设备,因为源地址和目标地址都在内部。很多家用路由器默认没有开启这个回环功能,于是内网访问自己的公网地址就卡死。

第一步,确认是不是NAT回流问题。在电脑上打开命令提示符,用tracert或ping测试,如果目标IP是公网地址,但前几跳都是内网IP,而且最后一跳超时,基本可以判断。第二步,进入路由器后台,找到NAT或端口转发设置。有些路由器选项叫NAT Loopback、Hairpin NAT或NAT反射,启用它。我的路由器在高级设置>NAT里有个开关,打开后立刻生效。

第三步,如果路由器没有这个开关,可以用DNS劫持的方式绕过去:在路由器DNS设置里,将你的域名解析到NAS的内网IP,这样内网访问域名时直接走内网,不经过公网。或者干脆在电脑的hosts文件里写一行映射,一劳永逸。

我用的是某主流品牌路由器,一开始固件没有这个开关,后来刷了OpenWrt,在防火墙里加了一条SNAT规则才彻底解决。规则大致是:iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -d 192.168.1.0/24 -j MASQUERADE。当然,如果你不想折腾,最简单的方法是让内网设备直接用NAS的内网IP访问。

这类问题很容易被误判为端口映射失败。其实端口映射对公网访问是正常的,只是内网访问的路径特殊。以后遇到内网访问不了自己的公网服务,先别急着查服务器,试试关掉WiFi用流量访问,能通就说明是NAT回流没开。

问:怎么判断路由器支持NAT回流?

答:在路由器界面上查找NAT回环、Hairpin NAT或NAT Loopback选项,如果有开关,说明支持。如果找不到,可以看说明书或咨询客服,或者直接刷第三方固件来实现。

问:NAT回流不开会影响公网用户访问吗?

答:完全不影响。公网用户访问时,请求从公网进来,路由器正常做端口映射,回应包也会从公网端口返回。只有内网设备访问公网IP才会遇到这个回路问题。

问:用DNS劫持解决后,内网延迟会变高吗?

答:不会变高,反而因为不经过公网,延迟更低。但要注意,如果你有多台设备需要同时访问,只能把域名解析到内网IP,不能再用原端口映射的规则,否则可能造成端口冲突。

文章名称:《内网用公网IP访问NAS卡死?实测NAT回流故障》
文章链接:https://www.192168011.com/luyouqishezhi/6867.html
本站作品均来源互联网收集整理,版权归原创作者所有,与本站立场无关,如不慎侵犯了你的权益,请联系我们告知,我们将做删除处理!