我家里的 NAS 其实利用率不高,重要的数据我都是存在云盘的。不过家里能有一个媒体中心还是会方便很多……比如看电影的时候。可以后台下载,然后电视等设备能直接读取。
我之前一直是用一台旧的 rmbp 来做服务器的,放在路由器旁边,网线直连,这样下载可以最大化利用带宽。不过众所周知 macOS 对 smb 服务的支持很烂,最近趁着有朋友的小主机,就拿它打造了一台 home lab,用的 Proxmox VE 虚拟化技术,除了针对 dell 的一个 nvme 不识别问题外,安装过程其实很简单,这里就不再赘述了。(dell 需要到 bios 里把默认的raid模式改为 AHCI)
我在 PVE 里装了 OpenMediaVault (OMV),专业的 nas 系统就是比老旧 rmbp 强多了,占用资源少不说,传输速度也超级快!
当然,现在还有一点不完美,就是你只能在家访问 nas。这个大家都懂,家庭网络嘛,选项就那么几个:
- 花钱买静态公网 IP
- 找运营商要动态公网 IP 然后做 ddns
然后做个 VPN 服务器……
当然,也可以做虚拟内网,这个最早应用还是早些年为了和同学联机玩局域网游戏,hamachi,当然也可以是浩方对战平台……如今,也有免费的选择比如 ZeroTier
他可以把你的 NAS 和 手机等设备放在同一个虚拟局域网中,然后不论你身处何地,只要连上,你和 nas 就处在一个虚拟的局域网中了。更进一步,如果你把路由器或者支持转发的服务器也放进这个虚拟局域网,你还可以配置它为网络出口,这样 ZeroTier 就会像是一个普通的 VPN 一样运行,十分方便,这样在外边连 Wi-Fi 等网络,也可以开启它,来方便的加密网络数据了。
设计
我这边计划是把路由器直接加入 ZeroTier,然后再在 ZeroTier 配置路由,直接让我的路由器作为这个虚拟局域网里的网关,这样又能转发数据也能访问局域网内的 NAS 了。
注册 ZeroTier
去 https://my.zerotier.com/ 注册账号,并生成你的第一个网络。免费账号可以最多创建 3 个网络,其实我只需要一个就够了。记得跳过初始化教程,不然你需要至少两台设备连进去才能完成教程。
值得注意的是,新创建的网络都是公开的,也就是一旦你的网络号码泄露,任何人都可以加入你的网络,且你无法把设备踢出去。当然,好处是你可以给网络设置路由,免费账户私有网络是不能添加路由条目的,这里我们先保持公开网络,等配置好后再切换回私有,路由信息会得到保留。
RouterOS 安装 ZeroTier
首先去 MikroTik 官网下载扩展包 https://mikrotik.com/download, Extra packages ,这些包并没有包含在默认系统中,下载到 zip 后解压缩,找到 zerotier 这个包,上传到你路由器的根目录然后重启,这样这个包就会自动安装。重启后到 System – Packages 目录下检查,确保 zerotier 包存在且已经激活:

确保 zerotier 包正确安装且激活
使用命令: zerotier/enable zt1 来激活默认实例,这个实际上就是 zerotier 官方服务器。ZeroTier 是开源的,你也可以搭建自己的这里为了方便我就用官方了。
如果你在国内,最好还是自己搭建节点,我实际测试来看,使用官方服务器虽然可以成功连接网络,但实际传输速度是达不到可用的程度的,中国移动网络测速仅0.5m带宽。
然后使用命令添加我们刚刚创建的网络到 zerotier 接口:
1 |
zerotier/interface/add network=<network id> instance=zt1 allow-managed=yes |
默认来说,这个接口的名字叫 zerotier1
使用命令查看接口状态: zerotier/interface/print ,看到 status OK 就可以了。
当然这还不够,我们还要配置防火墙来允许 ZeroTier 流量通过:
1 2 |
/ip firewall filter add action=accept chain=forward in-interface=zerotier1 place-before=0 /ip firewall filter add action=accept chain=input in-interface=zerotier1 place-before=0 |
配置 ZeroTier
这时我们再回到 ZeroTier 网页控制面板,刷新后你应该就能看到新加入的路由器的信息了,以及它分配的虚拟地址,比如我这里路由器就得到了 10.242.151.88 这样的内网地址,我们来添加一条路由信息,让一切网络请求都路由到路由器去: 0.0.0.0/0 via 10.242.151.88 ,意思是说访问任何地址,都走 10.242.151.196 这个设备。
添加成功后就可以把网络切换成私有了,这样一旦有新设备加进来,不仅需要知道你的网络号,还需要你来这个面板点击授权才行。
配置 RouterOS 作为网关
当然,现在你其实就已经可以通过虚拟局域网访问内网设备了,接下来我们来添加 NAT 好让这个虚拟局域网也能访问真实外网。
1 |
/ip firewall nat add chain=srcnat action=masquerade out -interface-list=WAN src-address=<zerotier-subnet> |
这里 <zerotier-subnet> 是你在 ZeroTier 得到的虚拟内网地址,通常是你路由表里默认的那个,比如我就是 10.243.0.0/16 (LAN)
这样,路由器这边就已经配置好了,最后是你 ZeroTier 设备客户端上的配置。
配置 ZeroTier 客户端
ZeroTier 客户端配置好后,默认是不添加全局路由的,你需要到设置中开启默认网关或者全局路由的选项。
另外 ZeroTier 默认使用本机 DNS,这就有可能造成使用 VPN 时 DNS 泄露,就需要手动设置你自己的 DNS,比如我这里就设置 DNS 为我路由器的 ip 地址,由于已经配置了默认路由,所以这个地址可以是 ZeroTier 下发的 ip 地址,也可以是我路由器自己的内网 ip 地址,都可以,因为是同一个设备。这样 DNS 请求就也会发给自己家的路由器了。
一个额外的好处是,如果你配置了路由器去广告之类的功能,那你即使出门也可以享受去广告的网络环境了hhh
本文由 落格博客 原创撰写:落格博客 » ZeroTier + RouterOS 打造回家 VPN
转载请保留出处和原文链接:https://www.logcg.com/archives/3889.html