这是系列的第四篇~

本篇将介绍实现远程管理NAS的两种方法。由于水平有限,错漏之处在所难免,欢迎在评论区指出~

以下是本系列的计划:

  1. 你为什么需要一台NAS
  2. NAS方案选择和硬件选购
  3. NAS系统的选择和OMV系统初探
  4. NAS的远程管理——DDNS和内网穿透(本篇)
  5. Docker的部署和使用
  6. Docker实践(一)——PT下载的解决方案
  7. Docker实践(二)——影音服务解决方案
  8. Docker实践(三)——云端存储解决方案
  9. Docker实践(四)——利用nginx为你的Web服务开启SSL支持

远程管理NAS

当你和NAS在同一局域网下时,可以很方便地进行访问和管理——

可以通过局域网IP利用SSH协议登录主机进行管理,或使用SCP, FTP, SFTP协议进行简单的文件管理。本文不具体介绍他们的用法。

对于OMV或其他提供Web界面的系统,可以通过在浏览器输入NAS的局域网IP和相应端口号登录WEB界面进行管理。

OMV Web面板

但是,如果你和你的NAS并不在一个局域网内,这时候又该如何访问NAS呢?

我们需要先判断我们所处的网络环境是否有公网IP,判断方法如下:

  1. 打开浏览器,进入路由器的后台管理界面。路由器的IP一般可以在路由器背面找到。
  2. 查看WAN口获得的IP地址。
  3. 若WAN口IP不在以下网段内,那么一般来说,你的IP地址就是公网IP。

10.0.0.0~10.255.255.255

172.16.0.0~172.31.255.255

192.168.0.0~192.168.255.255

获取公网IP

由于IPv4地址资源比较紧张,运营商有时会将若干用户放在一层透明代理之后,使他们共用一个公网IP并为他们每人分配一个内网IP。

当你发现你的路由器没有获取到公网IP时,先用网线直连你的电脑和光猫。利用光猫背后注明的IP、用户和密码登入光猫后台,检查光猫是否获得了公网IP,并检查是否为桥接模式。有的网络服务提供商装宽带时默认使用了光猫拨号,我们需要将光猫改为桥接模式,然后利用路由器PPPOE拨号上网。有关光猫改桥接的设置,不同设备型号可能有所不同,请自行百度。

当你发现即使光猫已经使用了桥接模式,你通过路由器拨号获得的IP地址仍然不是公网IP时,请致电你的宽带所属的网络服务提供商客服:

中国电信:10000;中国联通:10010;中国移动:10086;长城宽带:95079

并向人工客服解释,家里安装了网络监控,需要公网IP才能使用。客服会很快帮你设置好的。当然,以上步骤中你有不明白的地方也可以致电运营商客服,或是预约上门解决。

如果所处的网络环境无法获取公网IP,我们还可以利用内网穿透方式访问NAS。

DDNS

到这一步,我们已经获得了公网IP。但是,我们获得的公网IP并不是固定的,每隔一段时间网络服务提供商都会重新分配IP地址,我们并不能通过一个固定的IP地址访问NAS。(虽然可以购买固定IP,但为家宽绑定一个固定IP的费用不菲)这时候我们就需要用到DDNS,即动态域名解析服务。顾名思义,动态域名解析可以把变化的IP地址自动动态地映射到一个固定的域名上,通过该域名访问IP地址变化的主机。

首先,我们需要注册一个域名。本文以腾讯云/DNSPod为例。访问 腾讯云 注册并登录,并在 DNSPod 注册一个适合自己的域名。

DNSPod中国已被腾讯云收购

第二步,访问 https://console.dnspod.cn/dns/list ,为自己的域名创建一条A记录解析,主机记录填写一个子域名,记录值随便填。

图中添加了记录值为nas的A记录解析,也就是会将nas.mxcoras.vip解析到相应的IP上

第三步,访问 https://console.dnspod.cn/account/token ,点击“创建密钥”创建一个API Token。

点击创建密钥

第四步,在 ssh 终端输入以下命令下载 ArDNSPod 脚本到NAS上,推荐放在用户目录下,方便查找。

git clone https://github.com/imki911/ArDNSPod.git

第五步,用 WinSCP 连接 NAS 并打开 ~/ArDNSPod 目录下的 dns.conf 文件,将你的域名和第三步获得的ID和token输入到文件中并保存,格式可以参照同一目录下的 dns.conf.example 文件。

WinSCP界面

最后,运行 ddnspod.sh 就可以自动更新域名的解析了。将以下内容添加到 /etc/crontab 中,就可以实现动态解析域名了。

*/10 * * * * /home/[你的用户名]/ArDNSPod/ddnspod.sh

或者使用OMV Web面板提供的计划任务功能:

添加计划任务

注意,当你将代码放在用户目录下时,个人推荐将 ddnspod.sh 的最后一行代码由

. $DIR/dns.conf

改为绝对路径:

. /home/[你的用户名]/ArDNSPod/dns.conf

防止出现莫名其妙的脚本路径错误。

把脚本交由NAS执行有一个缺陷:当你的NAS掉电并且刚好运营商更新了你的公网IP时,你就会无法通过域名来访问你的路由器和部署在内网的服务了。这种情况通常是由停电、NAS系统故障或硬件故障引发的,解决方法是刷机后把脚本交由路由器执行。

推荐用来刷机的路由器:newifi3 d2,星际宝盒,竞斗云。某宝或某鱼有售,不会刷可以请商家刷好。推荐刷OpenWRT。

另:最近路由器更新换代快,WiFi6已出,芯片和系统也越来越强悍。有的路由器系统已经自带DDNS服务,直接把Api Token和域名填进去就可以。

内网穿透

当我们的运营商无法提供公网IP,或者我们的网络处在校园网、企业内网等环境下,无法获取公网IP时,我们还可以使用内网穿透的方式访问NAS。

这里推荐两种方法进行内网穿透:frp 和 zerotier 。

Frp

项目地址:https://github.com/fatedier/frp

Frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP 和 UDP 协议,为 HTTP 和 HTTPS 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

你需要准备:一台具有公网IP的服务器(运行frps),一台刷好机的路由器(运行frpc)。当然你也可以在NAS上运行frpc。

具体部署过程参考:官方中文文档

Zerotier

官方网站: https://www.zerotier.com/

Zerotier 是一个通过虚拟局域网的方式将你的设备放到一个网段下的新型内网穿透工具,传输数据基本不依赖服务器,为端到端传输,可以省下服务器的费用和提升传输速度。唯一的缺点是需要在每个设备上都安装Zerotire的客户端。

具体部署过程参考:官方文档

那么这期就到这里辣,有疑问或是有需要纠正的地方欢迎留言~

参考:

  1. 利用DNSPod实现动态域名解析DDNS (解析内网、外网或IPV6地址)
Last modification:May 23rd, 2020 at 05:25 am
如果觉得我的文章对你有用,请随意赞赏