V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zealic
V2EX  ›  宽带症候群

Zerotier 2.0 的愿景图

  •  4
     
  •   zealic · 2019-10-16 10:10:10 +08:00 · 17675 次点击
    这是一个创建于 1704 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直使用 Zerotier 作为我的 Homelab 内网穿透核心组网工具,配合各类安全上网工具,作为合格的社畜出差美滋滋。

    但是一直不满意 Zerotier 不支持代理,不支持 TCP,不支持各种隧道,Moon 功能不直观不好用,私有化部署困难。

    现在,Zerotier 团队规划了 2.0 版本,上面的大多数功能都有了对应的支持计划,我非常激动。

    这里就大概讲述一下 ZT2 的 2.0 愿景。

    使用 Go 重写非核心代码

    是的,没错,你看到了,ZT2 的配置和控制部分代码使用 Go 完全重写。

    在过去,Zerotier 使用 21 天才能精通的 C++:

    C++ 21 Days

    这导致了 Zerotier 的开发进度缓慢,而现在除核心网络 IO 路径代码以外,拥抱了新时代的 Go,相信会更快的开发。

    去中心化的 lf 根服务器

    Zerotier 团队实现了一个去中心化的 KV 数据库 lf,作为 ZT2 根服务器;由此可以容易实现私有化部署。

    同时 ZT2 摒弃了旧有的 Moon/Planet 设计,支持通过域名动态查找根服务器,也不再使用固定端口。

    对此我能预测到的是,当前云时代的复杂跨云及多云需求,Zerotier 可以很好的帮助我们解决这一问题。 以前我觉得也许某一个区块链的网络项目的私有链可以解决这个问题,现在也许 ZT2 是更好的方案。

    智能组播复制

    ZT2 支持点对点及星型组播,这对于公有云及复杂本地网络非常有意义。

    其他改进

    真正的多线程支持,全新的 UI 及 APP,支持新的加密算法及身份认证。

    思考

    一直有一个跨多云混合云的的虚拟网络的想法,寻找过许多工具,Zerotier 是最接近我的想法的,也许当 ZT2 面世的时候,会是让人惊喜的一天。

    ZT2 的应用场景会有很多,物联网也是其中一种,甚至可以用于游戏服务器中实现跨区跨国。

    以至于稍加修改整合,也会是一个区块链的虚拟云计算网络,希望这种价值,能早日得见。


    51 条回复    2024-04-25 18:46:56 +08:00
    gIrl1990
        1
    gIrl1990  
       2019-10-16 10:21:52 +08:00
    Moon 功能 是啥, (我是 Zerotier 用户。
    churchmice
        2
    churchmice  
       2019-10-16 10:34:37 +08:00
    @gIrl1990 用自己的握手服务器替换官方的
    lazyyz
        3
    lazyyz  
       2019-10-16 10:45:46 +08:00
    如果 2 台或多台 moons,会自动选择最快的吗?
    leavic
        4
    leavic  
       2019-10-16 10:45:51 +08:00
    把 tcp 加上我就谢天谢地了,udp 的 qos 太严重了。
    Archeb
        5
    Archeb  
       2019-10-16 11:18:07 +08:00 via Android
    期待
    idblife
        6
    idblife  
       2019-10-16 11:21:18 +08:00
    这玩意比 wireguard 好在哪里,最大的缺点是慢吧
    flyfishcn
        7
    flyfishcn  
       2019-10-16 11:39:35 +08:00
    能去中心化,并且支持 TCP 就可以了。udp 的 qos 对通信质量劣化太严重了
    wwqgtxx
        8
    wwqgtxx  
       2019-10-16 11:54:02 +08:00 via iPhone   ❤️ 1
    @idblife 为什么要和 wireguard 比,一个是用来异地组网(内网穿透),一个属于 vpn,根本没有可比性好吧
    Troevil
        9
    Troevil  
       2019-10-16 11:59:23 +08:00
    感觉他的穿透能力差了点, 同样网络环境下卡的不行 frp 就没问题, 感觉两个可以整合一下,让 frp 负责穿透 ,zt 负责组网
    lanternxx
        10
    lanternxx  
       2019-10-16 12:42:08 +08:00
    @Troevil #9 zerotier 是点对点的穿透,frp 是所有流量通过中间服务器转发的,这两个怎么比较。。frp 的确也有点对点的穿透模式,但我还没有成功过(同环境下 zerotier 没问题)
    des
        11
    des  
       2019-10-16 12:56:08 +08:00 via Android
    说起这个,我比较担心以后,会不会使用 zerotier 也要求备案 /t/608821
    Bwoywan
        12
    Bwoywan  
       2019-10-16 12:58:55 +08:00 via Android
    @des ?有关系? 80 端口,443 再怎么穿透,也是封了的,帖子里面是假设 web 服务被封,zerotier 只是一个穿透工具
    des
        13
    des  
       2019-10-16 13:01:37 +08:00 via Android
    @Bwoywan 问题不在技术,你说说 vpn 是用来干嘛的,为什么被禁?
    idblife
        14
    idblife  
       2019-10-16 13:20:43 +08:00
    @wwqgtxx
    vpn 不也是异地组网吗
    optional
        15
    optional  
       2019-10-16 13:21:13 +08:00
    要穿透只能是 udp。。
    wwqgtxx
        16
    wwqgtxx  
       2019-10-16 14:05:37 +08:00 via iPhone
    @idblife 建议你仔细了解两者的适用场景再来做比较
    zealic
        17
    zealic  
    OP
       2019-10-16 14:27:49 +08:00
    @Troevil Zerotier 是 P2P 通信,当双方都处于 NAT 之后,就会严重影响速度,因为此时流量都是被 Zerotier 的 Moon 进行转发的,所以才有自建 Moon 的需求。


    @lazyyz 不会。
    cwbsw
        18
    cwbsw  
       2019-10-16 14:37:22 +08:00
    现在国内 IPv6 已经可以算是普及了,没必要再折腾内网穿透了。
    blanu
        19
    blanu  
       2019-10-16 14:57:24 +08:00
    之前用过,速度令人堪忧(最高 500Kbps ),不知道是不是设置问题,但我已经按照教程设置好了 Moon 等
    932279632
        20
    932279632  
       2019-10-16 15:03:36 +08:00
    看了好久 ZT 的教程搭建,就是不会使用,服务器客户端都能识别到,网络就是不同,,难受,不知道怎么搞。
    kennylam777
        21
    kennylam777  
       2019-10-16 15:16:13 +08:00
    要實現混合雲組網,現有成熟的方案有 WeaveNet 的 mesh routing,但雙邊 NAT 穿透的話應該就只有 ZeroTier
    idblife
        22
    idblife  
       2019-10-16 15:43:21 +08:00
    @wwqgtxx
    呵呵
    我弄台 vpn 装上 wireguard server,然后每台客户端上撞上 wireguard 客户端拨入,难道没有解决异地组网问题?
    wwqgtxx
        23
    wwqgtxx  
       2019-10-16 15:52:04 +08:00 via iPhone
    @idblife 都说了 zerotier 不是解决你这使用问题的,它最主要的是实现 nat 穿透,使得不同地方的主机之间可以互相通讯,并不需要像 vpn 那样集中到一台 server 共享出口(当然你非要改 vpn 生成的路由表把默认路由给删掉来用也没人拦着你),而且在最大程度上使得两台机器可以不经过 server 直接 p2p 通讯(当无法打洞成功时回退到转发模式)。
    zerotier 不是 vpn
    zerotier 不是 vpn
    zerotier 不是 vpn
    重要的话说三遍,你要是还是听不懂就没有讨论下去的必要了
    xmoiduts
        24
    xmoiduts  
       2019-10-16 16:08:37 +08:00 via Android
    @idblife 可以不付很多流量费(仅花打洞那点开销)就实现 p2p 虚拟内网。

    期待 ZT2 的发布,也期待 TCP 模式可以打破现在 moon 的一些局限,个人遇到的有 udp qos 问题和手机不能连接 moon 问题。
    oovveeaarr
        25
    oovveeaarr  
       2019-10-16 16:13:43 +08:00
    @wwqgtxx #23 wireguard 也是组网工具的说,wireguard 也是一套 tunnel 协议以及工具。
    只要一端有公网就可以使用,如果两端内网的话的确是要第三方服务器中转的,不过没有内建自动处理的工具。
    另外默认路由是由 wg-quick 加的,wg-quick 只是一个脚手架,wireguard 本身只是一个协议没有所谓的默认路由的。
    zlylong
        26
    zlylong  
       2019-10-16 16:19:46 +08:00
    @wwqgtxx 要是有点赞按钮就好了。
    wogong
        27
    wogong  
       2019-10-16 16:27:02 +08:00
    前后使用过 zerotier frp wireguard tinc,我都是当内网穿透工具来使用的,frp 归一类,配置简单,对于只需要某个服务 /某个端口还是很方便的,另外三者可以归为一类,zerotier 不自建 moon 速度真的不行,自建 moon 我没搞定,wireguard 配置起来比较简单,但是好像不能实现 P2P (两端都在 NAT 后,如果有大神知道的话请赐教),tinc 看起来配置复杂,熟悉了也挺简单,是我目前主要的方案,可惜 tinc 没有 iOS 客户端,虽然需求不是那么明显。

    至于楼上说的 zerotier 不是 VPN,我估计 wireguard/tinc 也不是你理解的 VPN 了。
    feast
        28
    feast  
       2019-10-16 17:18:44 +08:00
    zerotier 的核心是 STUN 穿越,其他的都是辅助,你说的“不支持代理,不支持 TCP,不支持各种隧道”前两个都是 TCP 应用,STUN 是 UDP L2 隧道,最后只能显示你根本不了解什么叫 Layer 2 Tunnel
    zealic
        29
    zealic  
    OP
       2019-10-16 17:39:04 +08:00
    @feast 你并没有理解我的意思,我指的“不支持代理,不支持 TCP,不支持各种隧道”均是指 Zerotier 的传输协议层,关于这部分,你可以看看 libp2p 的设计。
    hahiru
        30
    hahiru  
       2019-10-16 22:15:54 +08:00
    其中支持 TCP 和动态域名中间服务器最关键。不然还是只能继续 frp。。。。。
    weyou
        31
    weyou  
       2019-10-16 22:17:37 +08:00 via Android
    @wogong 使用 tinc 好几年了,一直都很稳定。
    mader
        32
    mader  
       2019-10-16 23:58:34 +08:00
    @wogong 还有 1 个 N2N,也是类似的。zerotier 我也用过,自建 moon 没弄成功。最后还是用 FRP,主要还是配置简单,速度能保证
    lifengdp
        33
    lifengdp  
       2019-10-19 00:08:44 +08:00   ❤️ 1
    其他的困难都可以克服,就是没法以克服运营商的 udp qos,还用过 tinc,n2n,zerotier 算是最易用的了,稳定且打洞直接成功率高,但是一旦传输文件或者跑数据量稍大的应用就没法用,tinc,n2n 都一样。

    曾经在国内两台 openwrt 路由器上部署 zerotier,谷歌云上自建 moon,组网非常容易且稳定,ping 一般在 30-40 之间,就是被运营商的 udp qos 整得欲仙欲死,拷贝文件一开始能跑满带宽,不到一分钟就下降到 10kb 以内然后断掉。

    不得已现在用 frp,虽然不能直连,数据要经服务器中转,但好歹能用。另外另一个谷歌云上部署了 wireguard 服务,两台 openwrt 路由器上跑 wireguard 客户端长期连接到服务器上作为备用组网,虽然 wireguard 也基于 udp,但至少可以加 udp2raw,不会被运营商搞。

    不过 wireguard 已经被长城盯上,如果长期跑大数据量估计后果堪忧,所以只做为备用。
    zealic
        34
    zealic  
    OP
       2019-10-19 23:12:42 +08:00
    @lifengdp 主要还是 ZT 固定端口的问题,只要不固定端口,或通过手段间接改端口,很稳定
    wslzy007
        35
    wslzy007  
       2019-11-14 15:30:44 +08:00
    如果只是搭建自用的,有公网 ip 可自建路由,无公网 ip 可 v4 on v6 tunnel 穿透,可以试试 smargate ( github.com/lazy-luo/smarGate ),用 tcp 打洞且能支持 v6 防火墙穿透,不会再有 udp qos 了。
    wzw
        36
    wzw  
       2019-12-20 09:27:53 +08:00
    Zerotier 的 9993 端口只需要 udp 吗? 还是 tcp/udp 都需要?
    zealic
        37
    zealic  
    OP
       2019-12-20 11:08:13 +08:00
    @wzw udp
    wzw
        38
    wzw  
       2019-12-20 11:24:00 +08:00
    @zealic 上面问到: @lazyyz #3 多台 moon 节点的时候, 如何选择的? 我还想多建立几个 moon,有这个必要吗
    tyhunter
        39
    tyhunter  
       2020-02-10 01:34:47 +08:00
    @lifengdp 想请教下您是跨运营商(例如一个电信一个联通)组 zerotier 时,“拷贝文件一开始能跑满带宽,不到一分钟就下降到 10kb 以内然后断掉”才遇到这个情况吗,还是说两端都是在同一个运营商下面
    lifengdp
        40
    lifengdp  
       2020-02-28 19:57:14 +08:00
    @tyhunter 家里的宽带是联通的,zerotier 组网应该大部分情况是跨运营商的,可能同运营商的,都出现这种情况,可能是联通对公网 udp qos 特别厉害。
    wzw
        41
    wzw  
       2020-04-01 22:35:30 +08:00
    @lifengdp #33 请问你用 wireguard + udp2raw 稳定吗? zerotier 和 nebula 是不是不可以加 udp2raw-tunnel. 网上资料好少, 谢谢
    impig33
        42
    impig33  
       2020-04-15 15:28:17 +08:00
    @lifengdp

    一样,本来只是用 zt 建了一个私用 lan,刚开始一两天挺好的,几天后 ping 丢包 40%,我 ctmldgb 了。

    请问下大家,锅内跨运营商 wirdguard 或者 n2n,能稳定使用吗?
    impig33
        43
    impig33  
       2020-04-19 10:33:02 +08:00
    @zealic

    很好奇那商用的水管怎么用的? 比如思科菊花深信服
    impig33
        44
    impig33  
       2020-04-19 10:34:58 +08:00
    @zealic

    端口改到 udp53 怎么样?
    hmmm
        45
    hmmm  
       2021-08-13 15:04:58 +08:00
    挖个坟...这特么 2021 都过一半了, 2.0 还连个毛都没呢...
    vchroc
        46
    vchroc  
       2021-10-19 16:29:11 +08:00
    @hmmm 同在等
    UnAmico
        47
    UnAmico  
       2021-11-16 17:47:48 +08:00
    CrazyBoyFeng
        48
    CrazyBoyFeng  
       2021-12-11 14:05:33 +08:00
    @UnAmico 之前用 golang 写了一大半,在 github 上的 edge 分支里。然后今年上半年这个分支被删了。然后新建了个 rustvc 分支继续开发。开发速度很慢,最近一次更新是三个月前的 9 月 17 日。
    ixinshang
        49
    ixinshang  
       2022-12-08 11:45:52 +08:00
    2022 年 12 月 8 日 11:44:33
    依旧没看到 2.0
    nkcfc
        50
    nkcfc  
       2023-01-11 22:07:24 +08:00
    23 年还是没有看到 2.0 。
    fucker
        51
    fucker  
       50 天前
    2024 了还是没有
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2452 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 04:24 · PVG 12:24 · LAX 21:24 · JFK 00:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.