想要从外网访问家中的NAS等设备,一般来说我们需要知道家中路由器的公网IP。
现在固定的公网IP基本上很难免费申请到了,但是一般来说运营商可以免费提供一个动态变化的公网IP:当路由设备重启时,运营商会给你重新分配一个新的IP地址。那么问题就来了,当遇到家中停电、路由设备重启等情况时,如果我是使用IP地址来访问家中设备,那么在这种情况下我需要先搞清楚运营商给我分配的新的IP地址是多少,然后使用新的IP地址才能继续访问;如果我是用域名来访问家中设备并且使用传统的DNS解析方式来对域名指定IP地址,我就需要在域名解析服务商那里修改配置并将域名解析到新的IP地址,才能继续使用域名访问家中的设备。
那么有没有办法把这个过程自动化呢?答案就是使用动态解析。目前提供动态解析服务的平台有花生壳、公云等,我们需要在这些平台购买一级或二级域名,才能享受平台提供的动态解析服务。然而相对来说,这种方式并不够经济实惠。这些网站售卖的域名明显比别的一些平台贵,续费的价格也要高出其他平台一截。
如果我们已经有了一台支持Docker的NAS主机,那么我们就可以通过更经济的方式来解决这一问题。下面我就以绿联DX4600为例,来示范一下如何完成实惠版的动态解析。
一、Docker安装DDNS-GO
打开Docker服务,进入镜像管理,点击镜像仓库,搜索ddns-go。
下载完成后,点击本地镜像,找到刚才下载的镜像。点击创建容器。
按如下步骤进行配置。
提前在NAS中创建好DDNS的目录,用于保存DDNS-GO的配置信息。这样可以避免在重启服务后配置丢失。
这里本地端口可以自己按照喜好或者实际的端口占用情况自行调整,没有特殊需求的话不用特意修改。
创建后会自动启动容器。
二、配置路由器端口转发
为了能够外网访问到我们的NAS设备,我们还需要在路由器上配置端口转发。比如我们想要通过路由器的9876端口访问DDNS-GO的默认配置页面,我们需要配置将访问路由器9876端口的所有请求,转发到NAS设备的9876端口。以小米路由器为例,操作步骤如下:
-
访问路由器管理后台:192.168.31.1
-
登陆后进入高级设置,点击端口转发
-
点击添加规则,按图示进行配置。其中外部端口指的是路由器的端口,内部端口指的是我们的NAS主机的端口。这里192.168.31.46是我的NAS设备的内网IP。
- 这里补充一点,为了确保端口转发不会失效,最好将我们的NAS设备的内网IP配置为静态IP。这一步骤比较简单,不清楚的可以百度一下。
-
添加之后,我们就可以通过家中路由器IP:外部端口,来直接访问我们的DDNS-GO服务了。
三、申请域名和密钥信息
以DNSPod为例,我们进入DNSPod官网并登陆,选购心仪的域名(这里没什么好讲的,但凡卖东西的,基本上不会让你不知道怎么买)。
接下来申请域名和秘钥,可以参考如下流程:
- 点击右上角头像
- 点击API秘钥
- 点击DNSPod Token
- 点击创建密钥
- 记住创建的密钥的ID和Token信息,后边要用。一定要保存好,因为关掉这个页面以后就再也查不了我们的Token了。
四、DDNS-GO配置
在内网环境中,我们可以直接访问NAS所在IP+上一步我们配置的本地端口,进入DDNS-GO的网页配置页面。如果是外网环境,且我们已经配置好了端口转发,那么我们可以通过路由器IP+外网端口来访问DDNS-GO的配置页面。
- 点击Dnspod(腾讯云)
- 填入刚才我们保存好的ID和Token
- 点击启用IPv4(IPv6可选)
- 在其他配置中,配置登陆用户名和登录密码,并取消禁止公网访问(这样我们以后可以在外网调整我们的配置)
- 点击Save
五、检验配置
这时,我们在DNSPod的后台,应该就可以看到多了两条A类解析记录,指向了我们的xxxx.com和www.xxxx.com域名。
那么,我们就可以直接通过域名来访问我们家中的设备了。比如我们刚刚部署的DDNS-GO服务,我们就可以通过访问www.xxxx.com地址来进行外网访问。其他服务也类似,记得要在路由器上配置好端口转发哦。