一直想远程访问NAS,由于出租房,虽然是公网IP 但是获取不到光猫超级管理员,只好作罢。之前知道的方法有Frp 内网穿透,但觉得这样端口映射的方法比较麻烦,后来知道zerotier 组网,但感觉速度不理想,今天B站刷到可以用云服务器自己搭建zerotier ,于是决定尝试。
以下方法来源于网络
基于Zerotier根服务器的内网穿透部署
创建根服务器(参考教程:https://github.com/Jonnyan404/zerotier-planet)
注意:此处创建的应该并非能够脱离zerotier本体服务器的根服务器存在,而是让服务器作为节点创建网络。
我的服务器是centos steam8 先安装docker
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce -y --nobest
systemctl enable --now docker
然后就可以安装zerotier了
ssh服务器执行
docker run --restart=on-failure:3 -d --name ztncui -e HTTP_PORT=4000 -e HTTP_ALL_INTERFACES=yes -e ZTNCUI_PASSWD=mrdoc.fun -p 4000:4000 keynetworks/ztncui
在云服务器的控制台防火墙开启4000tcp端口
然后就可以用服务器的ip:4000 访问zerotier管理页了,点右上角的登录默认用户名admin密码在上面命令 mrdoc.fun
点击Add network 随便输入个名称点击创建。
分配DHCP地址 在Networks菜单中的Easy setup 可以手动填也可以点击Generate network address 随机设置。
现在服务器已经完成了。
在windows下安装Zerotier 客户端加入network id 就可以组网了。
但我的想法是在openwrt 中加入,然后局域网设备不用任何设置就可以组网。
勾选启用,输入网络ID ,下面的自动允许客户端NAT也需要勾上才能让局域网的其他设备访问。
回到Zerotier管理页面,在网络详情页面要勾选Authorized
此时还需要加入一条路由才能让局域网设备访问。
点击Routers按钮,进入路由添加页面
Target填局域网的网段 我的是192.168.20.0/24 Getway 填Zerotier分配的Openwrt路由器的IP 我这里是10.190.14.11
点击提交后就可以了。
测试能否访问,手机安装Zerotier 客户端加入网络ID ,关闭WIFI 直接在浏览器输入openwrt的地址,我这里是192.168.20.3 确实能访问,再用群晖的DS fIle 方法NAS 192.168.20.XX 发现应该是走的P2P 直连,能播放1080P 视频,我的服务器只有1M 带宽,手机上显示的流量速度3M以上所以应该是走的P2P直连,完美。
还有一点我想实现的,这里回到云服务器的ssh 发现ping不通局域网 192.168.20.xx 因为服务器还没有加入network id
方法是在ssh 中执行
curl -s https://install.zerotier.com | sudo bash
下面两句可以不执行
#启动zerotier
sudo systemctl start zerotier-one.service
sudo systemctl enable zerotier-one.service
加入网络命令要执行下
sudo zerotier-cli join xxxxxxxxxxxxxxxxxxx
然后再等待zerotier管理页面出现新的Members 再勾选Authorized 等待一会服务器应该能ping通局域网的设备 192.168.20.xx
离开网络
zerotier-cli leave xxxxxxxxxxx
还有个搭建Zerotier的Moon服务器
创建 moon 服务器 | 项目地址:https://github.com/jonnyan404/docker-zerotier-moon
#创建容器
docker run --name zerotier-moon -d -p 9993:9993 -p 9993:9993/udp -v /etc/ztconf/:/var/lib/zerotier-one jonnyan404/zerotier-moon -4 [公网ipx.x.x.x]
将[公网ipx.x.x.x]替换为实际公网IP 但我运行提示9993 端口已经使用,docker ps 命令查看好像是被前面的docker使用了,我改成9983 了 -p 9983:9993 -p 9983:9993/udp,要先去云服务器的控制台打开9983的TCP和9983的UDP 防火墙 再运行上面的命令。
上面开始运行失败了要先删除,运行docker ps -l 命令 再docker rm [CONTAINER ID] 再运行上面的命令
#查看moon ID
docker logs zerotier-moon
然后ssh openwrt 运行 zerotier-cli orbit xxxx xxxx
其中xxx 是上面命令运行后看到的moon_ID
#确认是否加入
zerotier-cli listpeers
如果立即执行可能会显示200 listpeers xxxx - -1 - LEAF 是正在加入吗?等了一会再运行上行命令可以显示成功加入MOON 200 listpeers xxxxxx MOON
云服务器自身也加入下
离开MOON
zerotier-cli deorbit xxxxxxxx
Windows 客户端加入moon服务器
cd C:\ProgramData\ZeroTier\One
zerotier-cli orbit [moon_id] [moon_id]
加入moon 后反而变慢了?
这个教程参考了B站大神司波图 https://gitee.com/spoto/natserver 非常感谢