解决局域网用户无法访问用局域网服务器的公网IP或者域名访问问题

这几天折腾NAS和公网,已经使用了内置的DDNS-GO将公网IP自动解析到域名上,也尝试了在公司和手机上通过5G远程连接NAS,没有任何问题。但后来回到家里,在同一局域网下使用域名访问NAS始终进不去,但用内网IP就没问题,或者关闭WIFI,手机就能通过域名打开NAS页面,看来问题就出在这局域网上,搜索了一番发现这属于一种叫IP回流或端口回流(英文:NAT Lookback 或者NAT Hairpin)现象。简单来说,就是路由器一旦遇到在内网通过域名访问外网中本机的公网IP的请求,即会自动屏蔽/抛弃掉该请求

解决方法也很粗暴,需要具有NAT loopback功能的路由器就能解决,然而联通送的SK-D748光猫铁定是没有的,查了一下小米路由器也没有,难怪在家无法直接通过公网IP访问到NAS,这就导致了手机APP上安装的相册同步软件在外面和在家需要来回切换内网/公网地址,十分麻烦,也不利于家人使用,如果用其他中转服务速度也不理想,于是打算解决这个事情。

方法一

如果家里只有台式机(网卡或路由器不支持ipv6)访问NAS,那直接在Hosts文件中指定内网地址(X.X.X.X  NAS域名),直接强制将域名解析到内网的IPv4地址上,不用路由器进行域名解释。但该方法比较麻烦的地方是,内网中每一台电脑都要如此设置,而且一旦该电脑脱离内网在外网使用(如笔记本电脑),又需要改回去;手机等通过路由器访问的NAS app无法改Hosts文件。 【不推荐】

方法二

做端口回环设置,根据网络文章(TP-LINK R473G 端口映射与回流/回环设置 https://blog.csdn.net/hai7425/article/details/76620581 及 TP-Link企业级路由器TP-R483G搭建IP回流 https://blog.csdn.net/x55x5/article/details/86146915)所述,可尝试搭建端口回环。不过,TL-R5408的端口回环设置无法NAPT条目中NAPT规则列表中设置,该列表中的出接口只能选择WAN口,而不能选LAN口。

方法三

群晖NAS上建一个内网DNS Server,即DNS解析服务器做域名劫持。具体为:主路由器→收到指定域名解析请求→先将请求转跳到内网的DNS服务器寻找域名对应的IP地址→如果找不到,再转跳到原本路由器上营运商提供的DNS服务器上解析。这样做的好处是:1、免费。2、对路由器无硬件上的要求,几乎所有家用路由器都可以指定使用特定的内网DNS解析服务器;3、不需要每一台电脑上设置,二级路由器或手机上也不用设置,任何连入该内网的设备都可以直接访问。4、要指定的域名可以随时增删,还可以避开营运商自带的劣质解析服务器,改用114.114.114.114或8.8.8.8等比较好的域名解析服务器。

具体措施如下:

1、先在群晖的套件中心上安装DNS Server套件。

2、安装DNS server 安装好之后在 在第一项 区域点击新增出现下拉界面 添加一个 Master 区域

然后在弹出界面中“域名”填写 你能外网访问群辉的那个域名的根域名,例如例子my.nas.com 这个的根域名就是 nas.com,在主dns服务器 那一栏 填写你本地群辉主机ip ,例如192.168.1.258 之后点击确定

然后选择添加成功后,双击你添加的一条进入修改界面“编辑源界面”,点击新增下拉选 A Type 在名称那里选择填入 你外网域名my.nas.com 中前半截 ,例如 my,中间的TTL 可以改小一点,改3600 ,然后点击确定

然后选择解析那一项,选择启用解析,下面启用转发器那两栏,第一栏填写你路由器网关地址,例如192.168.1.1;第二栏你可以填写其它dns供应商的地址 ,例如 114.114.114.114 8.8.8.8 这两个任意都行 ,然后下面 为先转发模式 点击应用

然后再将你电脑或者手机的第一栏DNS改为NAS的IP地址,第二栏依然是公共DNS,例如8.8.8.8  114.114.114.114 再或者是路由器的网关,例如 192.168.1.1解决局域网用户无法访问用局域网服务器的公网IP或者域名访问问题

本机网卡测试

最后开关一次飞行模式,试一下,正常情况下此时此刻应该可以在内网或者外网情况下直接访问域名进入NAS了

注意:这个仅仅是测试使用,如果想要长久实现,还需要将你电脑或者手机在路由上绑定IP,具体方法因为每个路由器设置不一样就不一一列举了。

如果不绑定,可能会过一段时间连接内网后,连互联网都无法连接。同时如果你绑定IP,建议绑定在DHCP地址池以外的,例如路由器中设置的地址池是从 192.168.1.100~192.168.1.199,而你的固定IP最好是这个范围以外的IP,例如192.168.1.2~192.168.1.99之间的,然后再进行mac绑定。

结论

改好后内外网可以用相同的域名访问NAS,外出和回家再也不用改登陆地址了。但后来发现一个问题,NAS一旦重启,自带的QC和DDNS服务,还有DDNS-GO等服务都失效,无法来访问公网域名然后拉取。又折腾了一会,发现原来是NAS本身启动比DNS Server早,NAS无法访问在后启动的DNS服务器,导致连不上公网(又或者NAS自身无法使用架设在自己身上的DNS Server,即自己无法解析自己?不得而知)。不过解决的方法也很简单,在群晖NAS的控制面板-网络-常规面板上,手动配置DNS服务器条目中,填入营运商默认的DNS服务器地址,这样每次NAS启动时后就直接通过营运商的公网DNS服务器连接到公网上的域名上,家里其他的设备再通过NAS上架设的内网DNS服务器访问NAS域名或公网域名。

2 打赏
未经允许不得转载:杨哥视界 » 解决局域网用户无法访问用局域网服务器的公网IP或者域名访问问题
分享到

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏