首页
关于
Search
1
AdGuardHome 安装及部署教程
42,098 阅读
2
搭建基于telegram的无限网盘
10,325 阅读
3
关于微软Azure学生白嫖指南
10,228 阅读
4
Oracle开放全部端口并关闭防火墙
10,085 阅读
5
最新Cloudflare免费自选IP教程(非Partner)
9,607 阅读
默认分类
技术搬砖
教学设计
故事奇谈
生活琐事
错题分析
精品软件
登录
Search
标签搜索
docker
张至顺
PHP
图床
Cloudflare
金刚长寿功
内网穿透
PT
qBittorrent
阿里云
onedrive
telegram
代理
青龙
FRP
python
一键
telegraph
ipv6
cf_workers
myedunote
累计撰写
110
篇文章
累计收到
1
条评论
首页
栏目
默认分类
技术搬砖
教学设计
故事奇谈
生活琐事
错题分析
精品软件
页面
关于
搜索到
1
篇与
Zerotier
的结果
2023-11-17
Zerotier搭建私有根服务器及创建虚拟局域网
一、Zerotier 原理概念planet:核心角色,官方不允许自建私有,zerotier 的行星服务器,用于管理全球所有的 zerotier 客户端的地址信息,帮助建立客户端间的直接链接,以及在无法建立直接链接时,作为中继服务器转发设备间的流量。moon:官方允许自建私有,作为离客户端更近的中继服务器存在,可以使转发的效率更高。原理客户端注册在内网机器上启动一个 zerotier 客户端,使用 join 加入一个网络,在控制台对客户端进行授权,此时 planet 上有如下记录:10.0.0.1 - 150.0.0.1/15679 10.0.0.2 - 160.0.0.1/22226 2.尝试 p2p 连接当在 10.0.0.1 机器上访问 10.0.0.2,内网机器向 planet 查询到目标地址的公网 160.0.0.1,端口为 22226。10.0.0.1 尝试与 160.0.0.1的 22226 端口进行直接数据交互,这个过程称为 udp 打洞实现 p2p 直连。 3.planet 转发由于各种网络限制,p2p 不能直连。此时通过 planet 转发,如果还配置了 moon 节点,此时会通过速度快的 moon 节点进行转发。如上图则大概率从上海的 moon 节点进行数据转发,此时网络取决于 moon 的带宽。二、私有 zerotier-planet 的优势解除官方的设备连接数限制提升手机客户端连接的稳定性三、搭建私有 planet了解了 zerotier 的概念原理,那么大概了解搭建私有 planet 的重要性。1、运行控制器容器docker run -d \ --name zt-ui \ -v /home/docker/zt-ui/zerotier-one:/var/lib/zerotier-one \ -v /home/docker/zt-ui/ztncui/etc:/opt/key-networks/ztncui/etc \ -p 4000:4000 \ -p 9993:9993 \ -p 9993:9993/udp \ -e MYADDR=1.1.1.1 \ -e HTTP_PORT=4000 \ -e HTTP_ALL_INTERFACES=yes \ -e ZTNCUI_PASSWD=admin123 \ --restart=always \ hausen1012/ztncui这里需要注意的是传参需要将 1.1.1.1 修改为公网 ip。2、生成 planet 文件docker exec -it zt-ui bash /tmp/patch.sh && \ docker restart zt-ui如果 linux 内核版本太低,可能报错 FATAL: kernel too old,那么需要升级内核。当然,如果你觉得云服务器不太方便升级内核,那么完全可以用一台测试的虚拟机进行生成文件,文件生成后用 ftp 上传到 /home/docker/zt-ui/zerotier-one 目录,然后再启动容器。3、测试docker exec -it zt-ui zerotier-cli listmoons显示如下内容则表示搭建成功[ { "id": "00000004e3b1b4b0", "roots": [ { "identity": "04e3b1b4b0:0:ea0c548b45efcc701c052305f06568c749a4647b9a5b111e2b372c05f7c3ed56ae1009c29cb1aa51d95057bf1b65b3a2f7b01d129437f6b72efd08f68281fb52", "stableEndpoints": [ "1.1.1.1/9993" ] } ], "signature": "b4f539ef93e198203d9e270c155d091769408ff98489d83bcf6444d2a95112ca7369138b98d42512caa3c878f3eff2c27ecada28f549ea19e3a407e71bbeb008d51f6ba92af17e8b6e4c1b8eacbd4abc42f0f639746ea924cffb99b539f94e2b", "timestamp": 1665642068786, "updatesMustBeSignedBy": "7fcb120079801a1ddde8c1fb6657365351bca7279e8470728f4cf01fb5efc81b57cde03338b4ea76dfd39570f74f2654d8d52a22613e77ed2e4cbb46a648a42d", "waiting": false } ]1.1.1.1 为公网 ip 则搭建 planet 成功。四、创建私有网络访问 http://公网ip:4000,账号密码:admin/admin123。1、创建网络2、初始化网络点击 Easy setup设置网段和子网掩码五、安装 zerotier 客户端docker 安装既然已经搭建了私有的 planet,当然是使用自己的,需要先下载服务器 /home/docker/zt-planet/zerotier-one 目录下的 planet 文件。1、启动 zerotier 客户端docker run -d \ --name=zt-cli \ --device=/dev/net/tun \ --net=host \ --cap-add=NET_ADMIN \ --cap-add=SYS_ADMIN -d \ -v /home/docker/zt-client/zerotier-one:/var/lib/zerotier-one \ --restart unless-stopped \ hausen1012/zerotier2、替换 planet 文件将服务器下载的 planet 文件上传到客户端的 /home/docker/zt-client/zerotier-one 目录。3、重启客户端docker restart zt-cli4、查看 planetdocker exec -it zt-cli zerotier-cli listpeers可以看见 stableEndpoints 的配置是自己的公网 ip。5、加入网络docker exec -it zt-cli zerotier-cli join 8b8b9ed58a10bd456、授权ip 也可以自己设置,不过要在刚刚设置的网段内。Linux安装1、简单快捷,只要执行以下命令一键安装即可。安装完成后会自动在**/var/lib/zerotier-one/**下生成相关文件及目录curl -s https://install.zerotier.com | sudo bash2、替换planet文件需要先下载服务器 /home/docker/zt-planet/zerotier-one 目录下的 planet 文件将服务器下载的 planet 文件上传到客户端的 /var/lib/zerotier-one 目录3、添加开机自启systemctl enable zerotier-one.service4、启动zerotier-one.servicesystemctl start zerotier-one.service5、加入网络zerotier-cli join ################(networkid)6、查看加入的网络的信息,比如networkzerotier-cli listnetworks# 如果连接成功,并且管理页面中勾选此客户端,则会返回以下内容200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips> 200 listnetworks 830xxxxxxxx49 high_wozniak 4a:ce:1d:66:95:9b OK PRIVATE ztqu3hhgt3 10.147.18.122/247、退出加入的network网段zerotier-cli leave ################(networkid)8、卸载zerotieryum remove zerotier-one -y rm -rf /var/lib/zerotier-one/windows 安装1、下载客户端下载地址2、安装客户端双击安装即可3、替换 planet将下载好的 planet 文件复制到 C:\ProgramData\ZeroTier\One 目录下,(这个目录是个隐藏目录,需要运允许查看隐藏目录才行)4、重启服务如果仅仅只是重启 ui 是不行的,需要找到任务管理器 -> 服务 -> ZeroTierOneService,进行重启。5、查看 planet可以看见 planet 地址是自己的公网。6、加入网络点击右下角图标,join new network,输入刚刚创建的虚拟网络 id,我这边是 8b8b9ed58a0baa3d。7、授权和 dokcer 安装一样的操作,不再赘述Android安装有人制作了可以设置planet的版本:https://github.com/kaaass/ZerotierFix更新日志更新 Zerotier 核心更新 Zerotier 核心至 1.12.2改进消息提醒相关的用户体验在 APP 未获得通知权限时弹窗提示用户此弹窗提示可以被永久性关闭MIUI 机型在成功连接网络后无法弹出 Toast 提示更改通知类别名称为更具体的通知类型点击状态栏通知时无法跳转至 APP允许使用通过非官方 Planet ID 生成的 Planet 文件允许使用通过非官方 Planet ID 生成的 Planet 文件该功能应当能修复此前 APP 不识别部分自建 Planet 项目生成的 Planet 文件的问题六、测试通过上述方式将两台机器加入到网络,通过 ping 查看是否能打洞成功。其中 202 本地虚拟机,vps 是有公网 ip 的云服务器ping 检测在 10.0.0.202 机器上 ping 10.0.0.222listpeers 查看到只有自己的私有根服务器,ping 的延迟不到 100ms 和直接 ping 公网 ip 差不多,说明打洞成功。局域网 scp 检测speedtest 测速可以看见速度能达到十几MB,而我的根服务器是腾讯云的 3Mbps 服务器,如果通过根服务器转发肯定不可能达到这个速度,说明打洞成功。如果没有出现以上测试情况,Zerotier也无法保证能打通的,并且打洞成功也有可能有波动,能连接,但可能是根服务器腾讯云的 3Mbps的速度,无法点对点直连<u>参考文章:https://www.nodeseek.com/post-37619-1</u>
2023年11月17日
943 阅读
0 评论
0 点赞