珂珂的个人博客 - 一个程序猿的个人网站

zerotier异地组网

一直想远程访问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管理页了

点击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   非常感谢



上一篇:个人代码全部开源

下一篇:威联通复制文件速度之谜


0 评论

查看所有评论

给个评论吧