Read Original
最近看了以下两个文章,感谢发布的各种精彩文章,让我受益匪浅。OPENWRT 的固件在设置了,【自动允许客户端 NAT】后,可以直接访问局域网其他设备,而我 unraid 部署 zerotier 后,只能访问 unraid,不能访问局域网其他设备,我发现是因为少了 unraid 端 nat 这个过程,我搜索研究综合其他文章,通过在 unraid 端简单输入三条命令,实现了外网访问 unraid 局域网内的其他设备。简单说下操作步骤。
实例介绍
具体客户端的部署请看上面两个文章,我直说在上面文章的基础上如何实现的。以我的电脑为例,各个 ip 根据个人事迹情况修改下。
个人是 unraid 6.9.0rc2,主机所在局域网段为 192.168.3.x;unraid 设备在局域网的 ip 是 192.168.3.55
zerotier 官网的网段为:192.168.191.x,unraid 设备在 zerotier 的 ip 是 192.168.191.206
查看 zerotier 端 ip
-
按上图记下 zerotier 端(虚拟局域网)的 ip 地址,例如我的显示的地址是 192.168.191.206,所在网段为 192.168.191.0/24。
-
按上图添加路由表,找到 zerotier 端的 Advanced,Add Routes,左侧填入个人路由器局域网的网段(也就是 unraid 设备局域网网段),例如我的unraid 设备在路由器的网段是 192.168.3.x,则此处填写 192.168.3.0/24。右侧(via)填入上一步记下的地址,例如我的地址是 192.168.191.206
unraid 端设置
-
unraid 安装 zerotier 并加入 zerotier 的 id 后点击右上角的 终端 按钮,进入命令模式。
-
开启
net.ipv4.ip_forward
:在终端输入echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
-
不要离开,接着开启 MASQUERADE:输入
iptables -t nat -A POSTROUTING -s 192.168.191.0/24 -j MASQUERADE
此处的 192.168.191.0/24,即为 zerotier 端的 ip 所在网段,大家要改成自己的。
总结
可以,如此即可在外网的电脑网页或者手机端,直接访问所有的 unraid 所在路由器下的局域网设备了,直接输入实际 ip 即可,比如我的路由器地址是 192.168.3.1,那么我外网直接输入这个 ip,可以配置路由器。我的 unraid ip 是 192.168.3.55,那么我直接输入这个 ip,就是 unraid 的配置端了。
如果大家是树莓派,也是可以按照此命令直接开启服务器的 nat 转发即可。