今天有用群晖NAS的朋友告诉我,他的NAS无法通过域名访问。我测试了下他NAS的DDNS域名,发现我这里访问一切正常,然后又让他关掉手机上的WIFI换成手机数据网络,试试在手机上能不能访问,发现也可以正常访问。了解到他使用的是OpenWrt的路由器,于是我想到这应该是一个NAT回流(NAT loopback)的问题。网络拓扑结构如下图所示:
今天有用群晖NAS的朋友告诉我,他的NAS无法通过域名访问。我测试了下他NAS的DDNS域名,发现我这里访问一切正常,然后又让他关掉手机上的WIFI换成手机数据网络,试试在手机上能不能访问,发现也可以正常访问。了解到他使用的是OpenWrt的路由器,于是我想到这应该是一个NAT回流(NAT loopback)的问题。网络拓扑结构如下图所示:
搞清楚了问题,解决起来就比较简单,配置静态域名解析,解析NAS的域名到对应的NAS的内网IP。这样当您在局域网里面使用域名访问NAS的时候,实际上解析的就是内网NAS的IP地址。在外网访问时,解析的就是公网IP地址。
右键单击用Notepad++之类的文本编辑器打开,添加NAS对应的DDNS域名和和NAS对应的IP地址解析记录,如192.168.50.8 mynas.myds.me,保存hosts文件。记得这里的IP地址和域名换成您NAS对应的IP地址和域名。如果弹出保存失败,文件无法保存,它可能受到保护。是否要用管理员模式启动Notepad++?的对话框,记得选是。
您也可以使用DISM++工具箱里面的hosts编辑器来修改。打开Dism++,注意选择合适的版本。因为我的设备是64位的,所以我选择了x64的版本双击打开。点击左侧的工具箱,然后点击hosts编辑器,这样就打开了hosts文件,添加解析记录,如192.168.10.5 nas.mynas.me,保存hosts文件。记得这里的IP地址和域名换成您NAS对应的IP地址和域名。
打开Finder,按快捷键组合 Shift+Command+G 查找文件,输入/etc/hosts,确认前往。添加NAS的DDNS域名和NAS的局域网IP地址解析记录并保存。
登陆OpenWrt路由器后台,网络-主机名。在主机目录下面的主机名里写上NAS的域名,IP地址的下拉菜单里选择NAS的内网IP地址,然后点击右下角的保存并应用。如qunhui.nas.com 192.168.100.2,记得这里的IP地址和域名换成您NAS对应的IP地址和域名。