男人的三大玩具:软路由、充电头和NAS

PS:为步入中年提前做准备
但是当搭建了三大巨头之一的NAS之后,我们往往不会满足于现状,远程访问是我们会遇到的第一个大问题。这篇文章就来讨论一下,NAS应该如何远程访问,以及每种方法的优劣。
注意,本文只是进行技术探讨,给出一个NAS远程访问的方法论,并不手把手展示全部技术细节,因为具体实现的方法多种多样,NAS的品牌也很多,没有一个统一的方法,网上也有很多教程,但是我会在关键地方给出必要的技术细节。
如果有机会,后期我会考虑出几篇具体的技术实现教程。
方案一 使用官方提供的远程访问服务
对于一些成品NAS,官方是提供了自带的远程访问服务,数据通过官方的服务器进行传送。这种方案优点是快速、便捷且相对安全,适合新手用户和嫌折腾的用户。
各家成品NAS的官方远程访问服务:
- 群晖:QuikConnect
- 飞牛:FN Connect
- 威联通:myQNAPcloud
- 铁威马:TNAS.online
- 极空间:zconnect
- 绿联:UGOS云服务
但是,往往这些服务给的带宽很低,并且有可能收费。而且对于NAS DIY用户来说,这些服务更是无法使用到了。
那么就止步于此了吗?对于拥有三大爱好的男人来说:

方案二 家用宽带DDNS
家中每年交着成百上千的宽带费用,怎么能够不利用起来!但是运营商分配的公网IP地址通常是动态变化的,我们无法得知下一次会被分配到什么地址。怎么办呢?

我们可以使用DDNS服务(动态域名解析,Dynamic Domain Name Server),将域名动态地指向公网IP地址,当IP发生变化时,会即时调整域名解析到的地址。
这种方案的前提:
- 拥有公网IPv4地址,或者拥有IPv6地址
- 拥有一个域名
- 路由器或者NAS支持DDNS
第一步 准备一个公网IP地址
如果前期已经找运营商开通了公网IPv4地址,那就可以直接使用IPv4地址。如果没有也没关系,可以看下面的IPv6,也不建议去开通IPv4,现在运营商的公网IPv4地址已经不太好开通了,并且开通了会对家庭宽带的安全性造成威胁,所以不是很推荐使用IPv4。
因为IPv4地址池较小(IPv4只有32位),可以很容易被穷举出来,互联网上有大量的扫描器在24h不间断探测暴露在公网上的服务,即便有的运营商给的公网IP是动态变化的,但也可以很快被黑客们扫描到,进而发起攻击。
那么如何查看是否支持公网IPv4地址呢?
百度搜索IP:

然后进入路由器,查看WAN口上的IP。如果两者一致,则证明本地获取到的运营商IP和出口IP一致,也就是拥有公网IP。
在IPv6普及的今天,一般来说家用宽带都已经开通了IPv6服务,可以通过下面这个网址检测是否支持IPv6:
支持IPv6的界面显示如下:

如果发现没有开通,可以找装宽带的小哥或者运营商咨询,有可能是光猫、路由器设置没打开或者不支持,也有可能是因为没给你开通IPv6,这里就不啰嗦了,网上也有很多开通教程。
IPv6我是支持开通的,因为它对于网络环境的提升是有帮助的,而且IPv6地址池很大(IPv6有128位),很难被穷举出来,即便穷举出来了,IPv6会因为租期到了更换为下一个IPv6地址,并且大部分路由器的防火墙默认会对IPv6进栈流量进行拦截(iKuai路由器除外,默认全通)。
第二步:配置DDNS
首先在域名服务商处创建API密钥或者token。
DDNS功能的可用途径:
- 路由器自带的
- NAS自带的
- 脚本
如果你是WinNas,可以尝试我开发的这款基于腾讯云的DDNS脚本:https://github.com/vastroc/Win-DDNS
注意:这种方案整体不推荐
这种方案整体不推荐!无论是IPv4还是IPv6,只要暴露公网,都会对家庭网络造成很大威胁,虽然IPv6很难被穷举探测,但是使用DDNS服务后,就相当于直接告诉了别人自己的IPv6地址,具有极大的安全隐患。
安全建议:
- 防火墙设置仅允许特定地址和端口被远程访问
- 修改NAS的默认端口号,尽量改到高端口,降低被扫描的风险
- 开启双因子验证,防止账号被爆破
- 开启爆破封锁策略
方案缺点:
- 将NAS直接暴露到公网对数据的威胁风险极高。
- 家用宽带运营商会封锁80、443等常见端口。但是也不推荐使用这些端口,会增加被扫描的风险。
- 如果使用IPv6进行映射,那么只能在支持IPv6的网络中实现远程访问。经测试,手机流量一般都是支持IPv6的。
方案三:DDNS + VXN
我们可以通过在直接暴露公网的基础上对NAS传输信道加密——套一层微批恩。好处是只需要暴露微批恩的端口,NAS的所有服务端口都在内网。
该方案同样可以借助路由器、NAS或者脚本实现。
可以使用的协议或服务:
- L2TP/IPsec
- WireGuard
- OpenVXN
安全建议:
- 使用安全性高的微批恩协议
- 改用高端口
- 启用UDP
方案缺点:使用麻烦且还是直接暴露公网,综合体验不如方案四
方案四:异地组网
该方案是最推荐的,墙裂推荐!原因如下:
- 不需要公网IP(但有IPv6更好),无需担心公网IP被扫描和泄露问题
- 不需要将服务器直接暴露公网
- 不需要在防火墙中开启服务端口
- 不需要域名,没有额外开销
- 安装和使用简单,有多端app
- 可以将NAS作为出口节点,实现异地上网
- 可以将NAS作为子网路由,实现对局域网内其他设备的远程访问
常见异地组网方案:tailscale(推荐)、贝锐蒲公英、爱快SD-WAN、节点小宝、星空组网、飞鼠组网...
群晖上使用tailscale的具体方法:
- 登录tailscale官网,注册账号

- 下载tailscale群晖版安装包:https://pkgs.tailscale.com/stable/#spks,然后从群晖套件中心手动安装tailscale
进入SSH,启动tailscale:
tailscale up- 从群晖用户界面打开tailscale套件,然后登录账号,并在tailscale网页后台中允许群晖设备加入网络
- 在tailscale网页后台中设置密钥永不过期

- 群晖任务计划中,新增用户定义的脚本,设置自动更新:
tailscale update --yes

- (选)允许通过NAS访问局域网内其他设备:
tailscale up --advertise-routes 192.168.xxx.xxx/24 --accept-routes=true然后在tailscale网页后台中对NAS设备启用Subnet routes 192.168.xxx.xxx/24

- (选)开启出口节点:
tailscale up --advertise-exit-node然后在tailscale网页后台中对NAS设备启用Use as exit node选项

官方文档:https://tailscale.com/kb/1131/synology
后记
以上所有方案本质都是在将NAS的数据通过公网进行传输,那么这个过程必然就存在着风险,只是暴露风险等级不同,所以有必要对NAS的安全基线进行加固,后面我会出一期NAS安全基线加固的基本方法。
[...]我们的张三同学自从上一期知道了男人的三大玩具之一NAS后,也想搞一台自己的NAS,于是废寝忘食,经过不懈努力,终于搭建好了自己人生中的第一台NAS。上一期讲了NAS如何实现远程访问,评论区很多朋友也提出了自己的方案和建议,对文章内容进行了优化和完善。https://vastroc.com/nas/nas-remote-access文中提到的所有方案本质都是在将NAS的数据通过公网进行传输,那么这个[...]