V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
测试工具
SmokePing
IPv6 访问测试
CloudyKumori
V2EX  ›  宽带症候群

想请教一下大佬, zerotier 现在是彻底被墙了吗?

  •  3
     
  •   CloudyKumori · 63 天前 · 7141 次点击
    这是一个创建于 63 天前的主题,其中的信息可能已经有所发展或是发生改变。
    前几天就已经跟 NAS 失联了,我还以为是 NAS 抽风了,没想到重启了一下 NAS 以后彻底断连,zerotier 的容器也反复异常停止,看了下日志说是一直在等待 zerotier 服务器上线,但是因为等不到所以自动退出了,看了一下贴吧不止我一个有这样的问题,我用 ddns 连进去一点事都没有,就 zerotier 有这个问题。。。(我有自建服务器,但是也是要通过 zerotier 的官方服务器提供 API 才能正常使用,如果连不上的话自建服务器也是相当于废了)。真被墙了不知道还有什么别的方案能够替代,zerotier 是我用过的即开放又方便的解决方案了
    第 1 条附言  ·  62 天前
    感谢各位大佬的解答,目前初步排查大概确定是 zerotier 的官方 planet 服务器连接被阻断了,网络环境为某南方地区电信家宽,用 zerotier fix 看,planet 节点全部超时无法连接,尝试连接就会卡在“等待下发配置”这一步,当换成手机流量时有一定几率能连上官方 planet 服务器的部分 v4 地址和 v6 地址从而连接成功。

    目前解决方案:自编译二进制 planet 文件,把自己的自建服务器 IP 地址和端口写入文件内后替换各客户端的 planet ,这时设备优先走自建 planet 而得以建立连接。

    同时建议有相同情况的朋友可以试试 tailscale/headscale ( tailscale 的自建版),或者带 gui 管理界面的 wireguard ( wg-easy )作为备用方案
    第 2 条附言  ·  60 天前
    自建 planet 教程可以参考这篇文章: https://www.emengweb.com/p/zerotier%E7%9A%84planet%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%88%E6%A0%B9%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%89%E7%9A%84%E6%90%AD%E5%BB%BA%E8%B8%A9%E5%9D%91%E8%AE%B0%E3%80%82%E6%97%A0%E9%9C%80zerotier%E5%AE%98%E7%BD%91%E8%B4%A6%E5%8F%B7%E3%80%82

    不过我在这篇文章之前已经建好了一个 controller UI ( zero-ui ),所以我需要做的工作就是重新生成一个带有我服务器信息的 planet 二进制文件,然后替换各客户端的 planet 文件就可以了。

    自行编译二进制文件不难,先从 GitHub clone 以下文件到 root 文件夹中,然后文本编辑器(也可以运行 sed -i 命令插入自己的服务器信息,但是我比较喜欢图形化界面所以就不用命令了)打开 zerotierone/attic/world 里面的 mkworld.cpp ,把其中一个失效的服务器信息换成自己的,如果你想的话可以保留其他可用的官方服务器,也可以全删掉只用自己的(注意:貌似二进制文件规定了只能拥有 4 个根服务器信息,你要插入自己的服务器就得相应删掉一个官方的服务器),然后运行进入相应的 clone 保存目录,例如我是 clone 到 root 文件夹里,所以应该运行:“cd ./ZeroTierOne/attic/world/”,在修改好 mkworld.cpp 以后,运行“source ./build.sh”和“./mkworld”,然后把目录下的 world.bin 文件重命名为 planet ,可以用命令“mv ./world.bin ./planet”,然后再拿新生成的文件覆盖掉服务器里面 zerotier 目录的 planet 文件和客户端里的 planet 文件就好了。

    在整个过程中我用的是宝塔面板,所以文本编辑器编辑 mkworld.cpp ,重命名和覆盖 planet 文件这些操作都有 gui 图形界面来完成,只有在编译生成新 planet 文件的时候才需要用到终端机输命令,命令可以参考上面大佬写好的教程。

    其中在教程里面要用到的一些命令的解释:
    “sed -i '/roots.push_back/d' ./mkworld.cpp”和
    “sed -i '/roots.back()/d' ./mkworld.cpp”这两串命令是删掉所有内置的官方服务器的链接,如果你想保留部分可用的官方服务器,我建议你还是把 mkworld.cpp 下载下来自己用文本编辑器手动改。
    “sed -i '86i roots.back().identity = Identity(\"'"填写 identity.public 里的字符串"'\");' ./mkworld.cpp”
    “sed -i '87i roots.back().stableEndpoints.push_back(InetAddress(\"'"服务器 ip 地址 /通讯端口"'\"));' ./mkworld.cpp”这两串命令的意思是在第 86 行和第 87 行的地方插入你的服务器信息,也可以用文本编辑器的图形化界面来完成。需要说明的是不一定非得在第 86 ,87 行插入,你打开文件照着格式填就好。
    “source ./build.sh
    “./mkworld”
    这两行命令是生成 planet 二进制文件的主要命令,没啥可说的
    “mv ./world.bin ./planet”这串是把新生成的 world.bin 文件改名为 planet 文件,这就是我们最终要得到的东西
    “\cp -r ./planet /var/lib/zerotier-one/”这串就是把新生成的 planet 覆写到我们服务器的 zerotier 目录下,用 docker 的小伙伴需要自己修改目录,定位到 docker 下 zerotier 容器的文件夹里头,也可以直接用文件管理器之类的图形界面手动复制粘贴。
    74 条回复    2022-09-02 11:25:15 +08:00
    CloudyKumori
        1
    CloudyKumori  
    OP
       63 天前
    "Starting Zerotier-One
    Wait for ZT service to come online before attempting queries...
    .
    .
    Waited SLEEP_TIME for zerotier-one to start, exiting."

    docker 的日志如上,容器启动了一会后就自动停止退出了,百度贴吧也有很多类似情况的人,还有正常使用的大佬来分享一下网络环境吗?现在不知道是不是真的干扰
    贴吧链接: https://tieba.baidu.com/p/7949764665
    EricXuu
        2
    EricXuu  
       63 天前 via Android
    自建 planet 试试吧
    732870147
        3
    732870147  
       63 天前
    没发现异常,正常使用,家宽广东移动
    haodingzan
        4
    haodingzan  
       63 天前
    还真是,重启了一台服务器上的客户端之后失联了,已经在线的客户端没事
    wonderfulcxm
        5
    wonderfulcxm  
       63 天前 via iPhone
    真的假的,我这用还是可以连接的,还没重启,不过我是 zerotier+frp 双保险
    huyyi
        6
    huyyi  
       63 天前 via iPhone
    我也发现了,显示 online 但是 ping 不通,有公网的机器就正常
    blufaux
        7
    blufaux  
       63 天前 via iPhone
    @huyyi #6 我也是但是,有个设置,发现被设置成 0 了,你们看看有个在线用户数量,不知道为啥变 0
    kinboy
        8
    kinboy  
       63 天前 via Android
    0731 联通家宽正常
    Tink
        9
    Tink  
       63 天前 via Android
    Tink
        10
    Tink  
       63 天前 via Android
    Tink
        11
    Tink  
       63 天前 via Android
    等 20 过了看看吧
    Marionic0723
        12
    Marionic0723  
       63 天前 via Android
    这两天好几个说被墙的,我用的好好的,大部分都是 NAT1 或者 2 ,可能是直连的原因吧,我现在都感觉不到墙加高了,最多是速度变慢。
    zggsong
        13
    zggsong  
       63 天前
    @wonderfulcxm +1 zerotier 有时候会突然连不上,很费劲 zerotier+frp 双保险
    netnr
        14
    netnr  
       63 天前 via Android
    tailscale
    看雪
    Tink
        15
    Tink  
       63 天前
    @Marionic0723 #12 跟 nat 没关系,跟运营商有关系,我这里是电信 4g 和宽带都连不上,移动联通没问题,有些地方是移动不行,tg 上有讨论
    yuantianwei
        16
    yuantianwei  
       63 天前
    一直使用自建 planet ,一直很稳定,坐标北京
    oneisall8955
        17
    oneisall8955  
       63 天前 via Android
    https://imgtu.com/i/vks9MV

    坐标深圳,手机端移动 5G ,租房是宽带电信( 192.168.199.1 ),planet 为腾讯轻量云,一切良好,除了手机端延迟会抖动
    sikong31
        18
    sikong31  
       63 天前
    zerotier 用公用的服务器,长期稳定在线会连通的快些,总是掉线上线容易绕路。或者自建 moon/planet 就稳了
    mhycy
        19
    mhycy  
       63 天前
    200 listpeers 62f865ae71 50.7.252.138/9993;1605;5804 419 - PLANET
    200 listpeers 778cde7190 103.195.103.66/9993;1605;1322 313 - PLANET
    200 listpeers cafe04eba9 84.17.53.155/9993;6109;1386 249 - PLANET
    200 listpeers cafe9efeb9 104.194.8.134/9993;5397;1431 199 - PLANET

    深圳电信,还好,建议测试上面几个 IP 的连通性
    zerotier 现在哪家服务商便宜就用哪家的样子,要稳定自建 planet 吧
    mhycy
        20
    mhycy  
       63 天前
    另,老版本容器建议升级成最新版本,因为 zerotier 换了 planet 服务器清单
    mhycy
        21
    mhycy  
       63 天前
    接上,升级容器之后手工删除配置目录下的 planet 文件
    billytom
        22
    billytom  
       63 天前 via iPhone
    请问下自建 plant 之后的升级怎么办?貌似自建的都是第三方的?
    PbCopy111
        23
    PbCopy111  
       63 天前
    我正相反。。。。NAS 重启了以后失联了好久好久。。。。最近突然自动上线了。。。。不知道为啥
    CloudyKumori
        24
    CloudyKumori  
    OP
       63 天前 via Android
    @mhycy 我就是自建的 planet ,用 synology-zerotier 的镜像重新新建了一个容器并且映射到了新建的空白文件夹,仍然是到了“Wait for ZT service to come online before attempting queries...”这一步就连接失败然后自动退出了
    CloudyKumori
        25
    CloudyKumori  
    OP
       63 天前 via Android
    @EricXuu 我就是自建的 planet ,用 synology-zerotier 的镜像重新新建了一个容器并且映射到了新建的空白文件夹,仍然是到了“Wait for ZT service to come online before attempting queries...”这一步就连接失败然后自动退出了
    CloudyKumori
        26
    CloudyKumori  
    OP
       63 天前 via Android
    @billytom 我看文档说自建 planet 还是调用的官方 api ,得先连上官方的服务器下一步才能找到你自建的 planet 。升级没啥问题直接升就好了,但是如果连不上官方服务器的话就会很麻烦,因为没办法调用 api 了
    CloudyKumori
        27
    CloudyKumori  
    OP
       63 天前 via Android
    @732870147 有老哥说广西运营商已经开始动手了,跟我情况比较符合
    CloudyKumori
        28
    CloudyKumori  
    OP
       63 天前 via Android
    @huyyi 我有公网,在我手贱重启 zerotier 的容器之间就是显示 online 但是连不通,重启以后容器就炸了--因为连不上 zt 官方服务器进行通讯所以进程自动退出了
    oneisall8955
        29
    oneisall8955  
       63 天前 via Android
    @CloudyKumori 你是怎么自建的,修改源码改成自己的 IP ,编译出 world.bin 修改文件名为 planet 替换了不?
    delpo
        30
    delpo  
       63 天前
    应该不是被墙了吧,如果被墙了不是应该无论什么运营商都用不了吗?
    我觉得应该是运营商屏蔽了,但是想不通运营商为什么要这么干
    CloudyKumori
        31
    CloudyKumori  
    OP
       63 天前 via Android
    @oneisall8955 我用的 docker 版图形化界面 zero-ui ,好像这个还真没改,我是直接建好以后就把 nas 给加进 nodes 里了,前段时间能正常用所以我也没想太多,可以请教一下哪里有相关的教程吗?
    mhycy
        32
    mhycy  
       63 天前
    @CloudyKumori
    那个叫做自建 controller ,不叫自建 planet
    mhycy
        33
    mhycy  
       63 天前
    @CloudyKumori
    更新你的 docker 镜像,最近更新到 1.10.1 了
    CloudyKumori
        34
    CloudyKumori  
    OP
       63 天前 via Android
    @mhycy 镜像已经是最新的了,不过原来 zero-ui 的捆绑镜像包只是自建 controller 而已吗,我还以为那个就是 planet 了。。想问问有没有相关教程呢,我搜到的都是跟我之前一样的搭建方式,没有涉及到更改编译 planet 的东西
    sypopo
        35
    sypopo  
       63 天前
    我这是有 IPv6 的网可以用,纯 ipv4 的网不能用了。手机连单位只有 ipv4 的 wifi ,就不行。换到了 5G 就可以了。 家里网有 ipv6 ,也可以用。
    CloudyKumori
        36
    CloudyKumori  
    OP
       63 天前 via Android
    @sypopo 我这边因为有公网 v4 所以没办法整 v6 了,现在这情况感觉像是在小范围试点,我 ping 不通 zerotier 的官方 planet 服务器,等真下定决心要铺开了 v6 应该也不会幸免。。
    mhycy
        37
    mhycy  
       63 天前
    @CloudyKumori
    官方源代码里面有个生成 planet 的编译文件
    理论上能用生成 moon 的那套命令编译生成 planet ,但我没试过
    planet 的节点可以是任意 zerotier 节点,有静态 IP 和端口就行
    最多四个,更多要改 zerotier 源代码
    mhycy
        38
    mhycy  
       63 天前
    接上,其实生成 moon 的那个二进制文件结构和 planet 是一样的
    mhycy
        39
    mhycy  
       63 天前
    补充:planet 支持在线更新,前提是当前已连接的 planet 内的任意一个节点有更新后的 planet 文件(里面有个时间戳)且 planet 的签名可通过校验(签名是你自己写的)
    CloudyKumori
        40
    CloudyKumori  
    OP
       63 天前 via Android
    @mhycy 感谢回答!我折腾了一下已经弄好 planet 了,用了 zerotier fix 客户端发现里面的 4 个官方提供的根服务器全部失联,自己用命令行 ping 了一下也是全部超时,只有自建的 planet 修改文件后重连成功,估计上面已经开始着手墙掉 zt 了。另外在线更新是什么意思呢,是当服务器端的 zerotier 容器有更新的时候还需要重新更新一下 planet 二进制文件吗?
    mhycy
        41
    mhycy  
       63 天前
    @CloudyKumori
    一个在线更新 planet 文件的分发机制罢了
    当前的 planet 节点有权限分发下一组 planet 的信息
    二进制包里面有一个 planet 写死的,那是初始化文件会写入到用户目录
    后续的更新由 planet 节点下发,并覆写用户目录下的 planet 文件
    mhycy
        42
    mhycy  
       63 天前
    @CloudyKumori
    另,墙是全局的,你这个更像是运营商的问题,珠海电信和深圳电信处理方式就不一样
    toptyloo
        44
    toptyloo  
       63 天前
    tailscale
    chunriyeqiukong
        45
    chunriyeqiukong  
       63 天前
    我是家里软路由开个 socks5 连回家里电脑
    Marionic0723
        46
    Marionic0723  
       63 天前 via Android
    移动已确认被墙,新加入的节点无法更新配置,已加入的有的地方可以连上,有的不行。
    路由跟踪 50 开头那个 IP 城域网丢包。联通电信暂时没问题。
    考虑上一个备用组网的了。
    bs10081
        47
    bs10081  
       63 天前
    @toptyloo 我目前用這個,主要是 SMB 協議(
    jfdnet
        48
    jfdnet  
       63 天前
    zerotier 的体验确实不大好,我已经换成 wireguard 了。
    sypopo
        49
    sypopo  
       63 天前
    openwrt 的 zerotier 可以自主选择 planet 服务器吗
    scegg
        50
    scegg  
       62 天前
    tailscale 一定要搞那个 100 的 ip ,然而这个 ip 被电信内网已经用了。结果就是在路由器上装了它就会导致网络出现各种奇怪情况。
    CloudyKumori
        51
    CloudyKumori  
    OP
       62 天前 via Android
    @oneisall8955 非常感谢,我也是看到了这篇文章,希望能给后面找到这篇帖子又遇到同样问题的人一些帮助
    CloudyKumori
        52
    CloudyKumori  
    OP
       62 天前 via Android
    @toptyloo tailscale 我也在作为备用方式来使用,不过遇到那些需要多用户共享的场景时,通过登录账号来连接设备的方式就不太好使了,zerotier 一串 ID 就可以解决,比较方便
    CloudyKumori
        53
    CloudyKumori  
    OP
       62 天前 via Android
    @jfdnet 我折腾了一下午也搭了个 wireguard + gui 管理页面,感觉还可以的,不限人数和二维码新加节点比 tailscale 方便
    CloudyKumori
        54
    CloudyKumori  
    OP
       62 天前 via Android
    @scegg 这样确实,应该在路由器下的设备安装会好点
    CloudyKumori
        55
    CloudyKumori  
    OP
       62 天前 via Android
    @Marionic0723 用 wireguard/tailscale/自建 planet zerotier 吧,我实验了一下都还行
    scegg
        56
    scegg  
       62 天前
    @CloudyKumori 其实在路由器上装主要的问题是它一定会拦截 DNS 到它的 100.100.100.100 。对于翻墙路由器(通常有 DNS 处理)很不友好。100 的 ip 只能是看脸,只不过它分的 IP 不能控制的,电信的 ip 也是不能控制的,撞在一起就死。
    usufu
        57
    usufu  
       62 天前
    被墙刚好解决一个问题啊,以前自建 moon 服务器延迟有时候也很高,查了下是因为 zerotier 并不能保证所有流量都通过 moon 中转,结果现在 planet 被墙了,反倒是所有流量都走 moon 了啊,延迟也下来了
    CloudyKumori
        58
    CloudyKumori  
    OP
       61 天前 via Android
    @mhycy 大佬你好,我想问问在自编译 planet 二进制文件的时候可不可以在保留官方的 planet 节点基础上插入自己搭建的节点?我在 mkworld.cpp 里面插入自己的节点信息编译后会提示“terminate called after throwing an instance of 'int' ”然后编译就停止了,貌似不太行的样子
    mhycy
        59
    mhycy  
       60 天前
    @CloudyKumori
    试验过了,不行
    插入节点信息你这肯定写错了什么东西,解析那个原始 planet 就有全部数据,但没用
    CloudyKumori
        60
    CloudyKumori  
    OP
       60 天前 via Android
    @mhycy 我解决了,原来是 zerotier 的 planet 文件限制了只能在里面留 4 个根服务器,我把里面失效连不通的一个服务器替换成自己的服务器就可以了。。其他能连通的服务器我保留着
    ZeroDu
        61
    ZeroDu  
       60 天前
    @CloudyKumori 大佬怎么自建 planet ,有没有教程。移动现在彻底用不了,一直是卡在 获取配置中
    CloudyKumori
        62
    CloudyKumori  
    OP
       60 天前 via Android
    @ZeroDu 我新加了一串附言,你可以看着参考一下
    sypopo
        63
    sypopo  
       60 天前
    CloudyKumori
        64
    CloudyKumori  
    OP
       60 天前 via Android
    @sypopo 这个应该也行,不过控制面板不是 zero-ui 的,ztnui 好像已经很久都没有更新过了,zeroui 应该会好点?
    ZeroDu
        65
    ZeroDu  
       59 天前
    @CloudyKumori 感谢;已经搞好了; zero-ui 暂时没搭建,network 还是暂时在官方那边;
    CloudyKumori
        66
    CloudyKumori  
    OP
       59 天前 via Android
    @ZeroDu 所以还是用的官方的服务器吗?解封了?
    ZeroDu
        67
    ZeroDu  
       59 天前
    @CloudyKumori 没解封; listpeers 里面有我的 ip:9993 显示 planet
    systemcall
        68
    systemcall  
       59 天前
    墙是分地区的
    不同地区、不同运营商,墙的行为是不一样的
    比如 Github ,就是从部分地区开始试点的
    还有最近的 Steam
    CloudyKumori
        69
    CloudyKumori  
    OP
       59 天前 via Android
    @ZeroDu network 留在官方那边的话自建 planet 也能起效果的吗?我以为是各自 planet 管理各自的 network 分支并且互不干扰,比如自建 planet 会寻找不到官方 planet 下的 network (起码我在连上自建 planet 的时候没办法加入官方的 network )
    spadger
        70
    spadger  
       53 天前
    坐标北方秦岭边某城市,电信和移动网络,所有节点全部掉线
    spadger
        71
    spadger  
       52 天前
    最新状态,移动宽带已经恢复,电信宽带仍然瘫痪中
    spediacn
        72
    spediacn  
       36 天前 via iPhone
    最新状态,移动瘫痪中,电信反而好了
    spediacn
        73
    spediacn  
       36 天前
    这个命令检测你的客户端( linux )到 planet 是否全部都通:
    ```
    zerotier-cli peers|grep -iG "planet\|ztaddr"
    ```
    结果都是这四个 IP:
    ```
    <ztaddr> <ver> <role> <lat> <link> <lastTX> <lastRX> <path>
    62f865ae71 - PLANET 31 DIRECT 5866 4229 50.7.252.138/9993
    778cde7190 - PLANET 202 DIRECT 5866 9062 103.195.103.66/9993
    cafe04eba9 - PLANET 174 DIRECT 9265 4086 84.17.53.155/9993
    cafe9efeb9 - PLANET 145 DIRECT 4260 4115 104.194.8.134/9993
    ```
    第四列如果是-1 那就是不通了,腾讯云的还好,国内国外都能通,移动要么都不通要么只有后两个通。
    taorzhang
        74
    taorzhang  
       31 天前 via iPhone
    试试 tailscale 。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2097 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 15:19 · PVG 23:19 · LAX 08:19 · JFK 11:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.