家里搭建了 NAS 需要远程访问?这几个步骤很重要

如今网盘的使用成本越来越高,更多的人选择搭建自己的家庭 NAS 服务器。

NAS 可以用来做大容量存储、文件备份、文件下载、相册同步,甚至可以搭建网站、搭建自己的笔记以及邮件服务。

NAS 一般都安装在家里,如果出门在外应该如何远程访问家里的 NAS 呢?

公网 IP

公网 IP 意味着它是世界上独一无二的一个 IP。如果电脑有一个公网 IP,可以通过这个 IP 直接连接到这台电脑。在进行 P2P 下载时,也能连接到更多的公网 IP,从而获得可观的下载速度。可以这么说,如果没有一个公网 IP,不算真正地连接到互联网。

为什么移动宽带比另外两家便宜地离谱?不是因为移动良心,而是因为装了移动宽带你也只是在移动的内网里玩。公网 IP?不存在的。

所以在确定自己有没有公网 IP 前,如果你是移动宽带而且还没有分配 IPV6 地址,还想要外网访问 NAS,只能选择类似 QuickConnect、花生壳之类的服务了。

如何确定自己是否拥有公网 IP 呢?

首先到自己的路由器管理后台,查看自己的 WAN IP, 然后到 https://ip.cn/ 查询自己网络的出口 IP,如果两个 IP 一致,则为公网 IP。

一般电信或者联通都会分配公网 IP,但如果通过上述方法查的的两个 IP 还是不一致,可以打电话给宽带的客服投诉,一般情况下都会给的。

但是即便有了这个公网 IP,这个 IP 也不是固定的,毕竟全世界的 IPV4 地址已经分配完毕,每人一个固定 IP 根本不可能,我们已经不能要求更多了。

直接访问 IP 的方式显然不能完美解决随时随地访问 NAS 的需求,这个时候就需要用到 DDNS。

DDNS

DDNS(Dynamic Domain Name Server)的全称是动态域名服务,可以将动态 IP 映射到一个固定的域名解析服务上。设置好 DDNS 后,就不用关心 IP 地址的变化,直接访问绑定好的固定域名就可以了。

现在路由器一般都提供了免费的 DDNS 服务,可以直接在路由器管理后台绑定域名。华硕的 DDNS 可以选择「www.asus.com」这个免费的服务器,只需要在主机名称里填入一个子域名就可以了。

群晖也提供了类似的服务,可以通过「系统面板 -> 外部访问 -> DDNS」 进行设置。

点击「新增」按钮,服务提供商选择 Synology,主机名称一栏填入一个没有被占用子域名,主域名可以选择默认的 synology.me,也可以选择其他域名,勾选同意条款后点击确定就设置成功了。其他 NAS 的设置跟群晖类似,就不一一演示了。

DNSPod 域名解析

如果不想用路由器或者 NAS 提供的免费域名,可以申请一个属于自己的域名。

域名可以到阿里云或者腾讯云购买得到,可以选择一些没有意义但又好记的域名,便宜的一年只需要 9 块钱就可以搞定。

如果是在阿里云购买的的域名,需要将域名的 DNS 修改为 DNSPod 的服务器:

f1g1ns1.dnspod.net f1g1ns2.dnspod.net

进入 DNSPod 的域名控制台 https://console.dnspod.cn/dns/list,添加刚刚购买的域名。

添加完毕后点击域名,添加一条解析记录。主机记录为域名的前缀,记录类型为 A,记录值为要绑定的 IP,这里指的是宽带的公网 IP,点击确认后保存。

前面提到宽带的公网 IP 不是固定的,所以需要定时检查宽带的 IP,然后映射到 DNSPod 绑定的域名。这就需要在 DNSPod 上新建一个密钥。

点击 DNSPod 右上角的头像,点击安全设置,进入密钥管理,然后创建密钥。

创建完毕后,将 ID 和 Token 保存下来。

然后到群晖的外网设置里新增一个 DDNS。服务提供商选择 DNSPod.cn,主机名称填入刚才增加的域名记录,用户名和密码填入上一步保存的 ID 和 Token。填入之后可以点击测试联机,测试通过后就可以点击确定保存了。至此,宽带的 IP 已经成功映射到购买的域名上了,之后可以通过域名加端口访问家里局域网内任意一台设备了。

端口转发

在局域网内运行的设备,外网是不能访问的,这个时候就需要做端口转发。比如路由器的的后台管理地址为 192.168.1.1,端口为默认的 80,如果要在外网访问家里的这台路由器就要将 192.168.1.1 的 80 端口转发到公网 IP 的任意一个端口上。由于国内宽带的 80 和 8080 端口都被封了,所以要转发到其他端口。

端口转发的设置一般在路由器内就可以完成,华硕的端口转发可以如下设置。

上图的设置里我把 NAS 的 5000 端口以及 NAS 里安装的 Transmission 的 9091 都转发出来了,这样就可以通过 DDNS 那一步里设置的解析域名加端口号来访问这两个服务了。在使用微信小程序 TransClient 远程控制这个 Transmission 的时候。需要填入这个解析域名以及 转发出去的 9091 端口号,就可以成功在手机上远程管理 Transmission 了。