分享下自建 ZeroTier 根节点服务端 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TcDhl
0.04D
V2EX    宽带症候群

分享下自建 ZeroTier 根节点服务端

  •  
  •   TcDhl 2023-01-11 20:53:02 +08:00 6098 次点击
    这是一个创建于 1027 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ZeroTier 自建根节点服务端:


    适配 Debian10.10:

    • 全自动安装
    • 自动识别主机系统
    • 自动识别主机 IP,切换对应的下载节点
    • 主要解决了原版本中'显示大量历史节点记录'的 Bug

    注意事项及参考:

    • 建议用个干干净净的 Debian10 系统进行安装 ZtnCui 控制器 - 根节点服务端
    • 测试用的服务器系统为: Debian10.10 64 位
    • 提供的一键安装脚本只做了适配 Debian10 系统
    • 如果想用 Centos, 请自行解决环境搭建相关的问题

    安装步骤

    • 进入目录:
    cd ~ 
    • 下载脚本:
    wget https://agent-github.08w80.com/https://github.com/TcDhlPro/ZeroTierOne-SelfHostingNetworkControllers-ZtnCui/releases/download/v1.0.0/Auto_Install_ZtncuiForZerotier.tar.gz 
    • 解包:
    tar -zxvf Auto_Install_ZtncuiForZerotier.tar.gz 
    • 给脚本文件夹权限:
    chmod -R 775 Auto_Install_ZtncuiForZerotier 
    • 进入目录:
    cd /root/Auto_Install_ZtncuiForZerotier 
    • 启动脚本进行自动化安装:
    ./Auto_Install_ZtncuiForZerotier 
    • 初次安装时, 脚本一般都会在倒计时后, 主动断开 ssh 连接, 会有提示, 是为了重新配置环境
    • 断开 ssh 连接后, 重新连接服务器
      • 进入目录cd /root/Auto_Install_ZtncuiForZerotier
      • 运行脚本./Auto_Install_ZtncuiForZerotier
    • 会有一小段时间配置环境......
    • 终端会提示你输入两个自定义端口[ZtnCui 的 Https 端口] [ZeroTier 的 TCP/UDP 端口]
      • 输入3000以外未占用的端口, 因为 3000 端口是被默认用作 ZtnCui-Http
    • 要记得在防火墙放开[ZtnCui 的 Http 端口][ZtnCui 的 Https 端口][ZeroTier 的 TCP/UDP 端口]
    • 等安装完成, 访问 ZtnCui 后台地址进行查看

    在官方仓库 key-networks/ztncui 基础上进行汉化并打包成可直接安装的 linux 包,包含 deb 和 rpm 格式(附带了证书 RPM-KEY-TcDhlProForZtnCui@20230110)的软件包


    新版 ZtnCui(0.8.6)控制器相关截图(汉化完成度 98%):

    • 编辑日期: 2023 年 01 月 10 日
    • 98%是因为有些没必要汉化

    输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明

    新版 ZtnCui(0.8.6)控制器相关截图(未完全汉化阶段):

    • 编辑日期: 2022 年

    输入图片说明 输入图片说明 输入图片说明 输入图片说明


    客户端替换 Planet 文件

    • 服务器安装完成后会在脚本执行的目录找到 planet 文件,例如 /root 下生成的 planet 文件
    • 或者使用/var/lib/zerotier-one目录中的 planet 文件

    重启服务

    • linux 重启 Zerotier: service zerotier-one restart
    • win 系统重启 Zerotier: 需要在服务中重启 ZeroTier One 这个服务

    加入自建的根节点网络

    • 客户端执行zerotier-cli join 网络 ID, 之后就可以在 web 控制中心找到设备。

    特别注意:安装成功后会变更 ZeroTier 默认的 9993 端口为你自己设定的端口

    • 初始安装成功后, zerotier-cli listpeers服务端执行命令查看节点列表,如果打印出的节点列表是空的,则安装正确
    • 无论是什么样的安装方法,在初始安装完成后打印出来如果有其他节点信息,都是错误的
    • 自行部署的 Zerotier 根服务器,服务端在打印出的节点信息中,应该只显示有效连接的客户端
    • 客户端替换 planet 文件后,在不加入自己根服务器网络的情况下, 打印出的节点列表也是空的
    • 加入自己根服务器网络后zerotier-cli listpeers客户端执行命令查看节点信息, 如果 Planet 只有一个,且 IP 为自己服务器,则安装正确.
    27 条回复    2023-01-14 16:55:48 +08:00
    cxtrinityy
        1
    cxtrinityy  
       2023-01-11 21:44:47 +08:00
    感觉 op 很熟 zerotier, 借楼问点问题. 这是自建 planet 么? 为什么要自建 planet? planet 和 moon 啥区别, 看了官方文档, 理解的不太透彻, 没理解错的话, 如果 moon orbit 官方的 planet, 依然是优先通过 moon 打洞, 不行再用官方的 planet 打洞? 那这样只要 moon 可用, 就没必要 planet 吧?
    lithiumii
        2
    lithiumii  
       2023-01-11 22:02:58 +08:00   1
    @cxtrinityy 首先是给不信任第三方服务的人准备的,自建 Planet 数据就可以不走官方的了。其次是理论上有 Moon 的时候 Moon 优先没错,但跑个一年半载总有那么一两次突然就抽风了,这时候官方的 Planet 由于在国外,效果也不是很好,导致连不上或者速度感人。
    TcDhl
        3
    TcDhl  
    OP
       2023-01-11 22:49:33 +08:00   1
    @cxtrinityy #1
    如果你是部署了 moon 方式, 假设部署 moon 的机器是国内或者香港的, 那么在你某个 zerotier 客户端, 会同时存在官方节点和你的 moon 节点.

    如果你是部署了 planet 方式, 假设部署 planet 的机器是国内或者香港的, 那么在你某个 zerotier 客户端, 只能通过你的 planet 那台机器进行握手(不会再有官方节点, 对于境内的人来说, 相当于是加快了握手速度和某种程度上提高了两端打洞的稳定性)

    自建 planet 肯定是优于 moon 的
    这两种方式的打洞, 遇到跨运营商的话, 效果都是没那么好, 我是家庭网络的客户端都是电信, 华东那一片的打洞起来很快很稳, 家庭网络打洞到服务器网络也蛮稳
    jiangboyueplus
        4
    jiangboyueplus  
       2023-01-11 22:53:02 +08:00 via Android
    马克 抽空实践下
    Yien
        5
    Yien  
       2023-01-11 23:26:11 +08:00
    感谢分享!
    Lentin
        6
    Lentin  
       2023-01-11 23:30:01 +08:00
    https://github.com/jonnyan404/zeroier-planet
    用 docker 更方便一些……
    laoyur
        7
    laoyur  
       2023-01-11 23:33:21 +08:00
    @TcDhl 电信同省的两个客户端有时会互相 ping 不通,现象是通了 10s 左右就会不通个 30s 的样子,这种是被电信 qos 了吗?一般等个几个小时又会正常,但时不时遇到这种情况是真要命。
    TcDhl
        8
    TcDhl  
    OP
       2023-01-11 23:41:13 +08:00
    @laoyur #7
    我是上海-江苏-镇江 这三个地方的家庭网络穿透起来蛮稳的, 电信宽带
    TcDhl
        9
    TcDhl  
    OP
       2023-01-11 23:49:02 +08:00
    @Lentin #6
    他这个如果修复了那个 bug 的话, 那 docker 倒是更方便点
    mercury233
        10
    mercury233  
       2023-01-12 08:05:50 +08:00
    ZtnCui 不需要长期启动,有新设备加入时手动开启一会就行
    miyuki
        11
    miyuki  
       2023-01-12 08:36:12 +08:00
    我理解的:Planet 和 Moon 翻译过来就是行星和卫星,如果 Planet 是自己建的,那么肯定只会使用环绕这个 Planet 的 Moon
    YGBlvcAK
        12
    YGBlvcAK  
       2023-01-12 10:15:40 +08:00 via Android
    之前也搞过自建 planet ,遇到过一个问题,就是一段时间后,某些客户端就连不上了,查看连接是连接到美国的 zerotier 官方节点,jonnyan404 和另一个大佬的,都是这样
    xiaonian233
        13
    xiaonian233  
       2023-01-12 11:28:08 +08:00
    支持 op ,感觉如果只是临时用一下 n2n 是更轻量点
    sun82kg
        14
    sun82kg  
       2023-01-12 15:09:02 +08:00
    @TcDhl 实测 没修
    TcDhl
        15
    TcDhl  
    OP
       2023-01-12 15:12:43 +08:00
    @YGBlvcAK #12
    每个客户端其实也要替换 planet 文件的
    TcDhl
        16
    TcDhl  
    OP
       2023-01-12 15:13:08 +08:00
    @sun82kg #14
    docker 那个没修的话, 那你可以试试我这个
    TcDhl
        17
    TcDhl  
    OP
       2023-01-12 15:17:18 +08:00
    @miyuki #11
    自建了 Planet 后就没必要再设置 Moon 了
    sun82kg
        18
    sun82kg  
       2023-01-12 15:25:09 +08:00
    大佬,要是做个 docker 版就好了。 群晖里也能随意部署
    TcDhl
        19
    TcDhl  
    OP
       2023-01-12 15:40:02 +08:00
    @sun82kg #18
    docker 我还不是很精, 等后面玩熟了再出个 docker 版的哈哈
    YGBlvcAK
        20
    YGBlvcAK  
       2023-01-12 16:23:34 +08:00 via Android
    @TcDhl 当然都替换了,不然怎么连上自己的 planet
    TcDhl
        21
    TcDhl  
    OP
       2023-01-12 16:42:58 +08:00
    @YGBlvcAK #20
    那肯定没整对, 正常自建完成且替换好 planet 后, 除了你服务器的 IP, 是不会有其他节点的
    troilus
        22
    troilus  
       2023-01-12 19:32:39 +08:00
    DDNS 支持吗?
    TcDhl
        23
    TcDhl  
    OP
       2023-01-12 20:28:34 +08:00
    @troilus #22
    DDNS 和 zerotier 共存的话你可以试试 OpenWrt
    acupnocup
        24
    acupnocup  
       2023-01-14 08:50:15 +08:00
    好棒,收藏一下。
    zeze0556
        25
    zeze0556  
       2023-01-14 14:50:17 +08:00
    version: '2.0'
    services:
    ztncui:
    container_name: zerotier
    restart: always
    networks:
    zerotier_net:
    ipv4_address: 192.168.x.x
    volumes:
    - "/mnt/user/appdata/docker_server/zerotier_keynetworks/opt:/opt/key-networks/ztncui/etc:rw"
    - "/mnt/user/appdata/docker_server/zerotier_keynetworks/zerotier-one:/var/lib/zerotier-one:rw"
    environment:
    - HTTP_PORT=4000
    - HTTP_ALL_INTERFACES=yes
    - ZTNCUI_PASSWD=passwd
    ports:
    - '4000:4000'
    image: keynetworks/ztncui
    networks:
    zerotier_net:
    external:
    name: br0
    TcDhl
        26
    TcDhl  
    OP
       2023-01-14 15:54:43 +08:00
    @zeze0556 #25
    你这个应该是 Jonnyan404 这位兄弟的 Docker 版
    zeze0556
        27
    zeze0556  
       2023-01-14 16:55:48 +08:00
    @TcDhl 我喜欢简单直接的一键部署方式。目前我用在 unraid 中,用了大半年了,爽歪歪
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1007 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 18:40 PVG 02:40 LAX 10:40 JFK 13:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86