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

zerotier / tailscale / wireguard 怎么选?

  •  1
     
  •   ye4241 · 2023-08-12 21:03:36 +08:00 · 9471 次点击
    这是一个创建于 472 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自建过程

    zerotier

    使用 zyclonite/zerotier + dec0dos/zero-ui 来配合的,之前一直用的好好的,但是突然不能用了,没找到啥原因的,也尝试自建 planet ,发现 planet 死活就是没办法运行。

    tailscale

    自建版本使用 headscale + ifargle/headscale-webui 。 一顿操作下来,发现 tailscale 想要同时连接两个 server 的话,特别麻烦,而且只能同时连接一个的。 在 openwrt 上面搭建的时候,刚开始有 dns 的问题,后来默认其妙的路由器直接崩溃了。

    wireguard

    自建可以直接使用 weejewel/wg-easy 的镜像,很顺利的连上来,和 tailscale 一样,只能同时保持一个连接。 在 openwrt 的操作安装时候发现,没有找到 kmod-wireguard 的,懒得折腾了。

    回归 zerotier 官方

    最后,我回到了 zerotier 官方版本的,竟然能用了。 折腾了一圈,发现还是 zerotier 多组组网简单一些的,另外两个更加适合单个组网。

    客户端

    zerotier

    加入就是 join network ,然后后台授权,服务器可以不暴露端口 想要暴露内网的话,配置好本地路由转发后,后台添加路由即可

    tailscale

    如果使用官网的版本,直接点击登录就好了,如果是自定义的,那就得用命令行操作,而且自定义的目前也不支持 iOS 的。 想要暴露内网的话,命令行连接的适合将--accept-routes 加上,然后去后台那边允许

    wireguard

    后台生成配置后,本地直接添加就能连接上了,服务器需要暴露一个端口 暴露内网,似乎就是设置好 WG_ALLOWED_IPS 即可

    小结

    尝试了各种搭建内网穿透,最终还是回到了 zerotier ,因为组网不需要太复杂的命令或者配置。 zerotier 唯一的问题可能是之前看到好多因为 planet 异常无法连接的问题,但是据说自建 planet 可以解决,从源码编译替换容器里面的 planet 后重启,我一直没有成功的,现在用的官网版本也挺好的。

    64 条回复    2024-11-25 22:39:47 +08:00
    zhuang0718
        1
    zhuang0718  
       2023-08-12 22:20:45 +08:00 via iPhone
    zerotier 移动的网络配置失败 另外两家运营商正常 不知道是不是都有这个问题……
    shelken
        2
    shelken  
       2023-08-12 22:24:57 +08:00 via iPhone
    zerotier 最近开始遇到连不上 planet 的情况,遂开始用 headscale 了。你说的 dns 问题是不是没有设置 accept-dns=false
    thereone
        3
    thereone  
       2023-08-12 22:53:07 +08:00
    我选择 IPv6+softether 现在正规正矩的都会给 ipv6 地址
    simplove
        4
    simplove  
       2023-08-12 23:05:24 +08:00
    https://github.com/xubiaolin/docker-zerotier-planet
    用这个,自建 planet 挺好用的
    zyq2280539
        5
    zyq2280539  
       2023-08-12 23:11:31 +08:00
    tailscale 挺好用的啊,还可以自建中继节点
    jackOff
        6
    jackOff  
       2023-08-12 23:52:11 +08:00 via Android
    @simplove 这个的确不错,不过 zerotier 的路由不知道为啥每次都会造成我科学上网网速下降的厉害,后面换成 bore 就正常了
    zachary99
        7
    zachary99  
       2023-08-13 00:00:26 +08:00 via Android
    ddns + wg ,感觉也挺方便的
    yyysuo
        8
    yyysuo  
       2023-08-13 00:03:46 +08:00
    wg 的 wireguard 肯定不可能同时只连接一个呀,在 web ui 里面不是可以建立多个设备么。
    mhycy
        9
    mhycy  
       2023-08-13 00:12:02 +08:00
    提醒 zerotier 在深圳电信环境下全军覆没
    多节点多运营商混合测试结论是:
    controller 连不上导致 ARP 握手失败,planet 封锁剩下一个了
    bequt
        10
    bequt  
       2023-08-13 00:19:06 +08:00
    老老实实中介服务器或者公网
    dogfood
        11
    dogfood  
       2023-08-13 00:37:07 +08:00
    话说 zerotier 可以实现强制使用 moon 不直连吗
    JensenQian
        12
    JensenQian  
       2023-08-13 02:40:36 +08:00 via Android
    我直接 ss 回家的
    simplove
        13
    simplove  
       2023-08-13 09:01:52 +08:00 via iPhone
    @jackOff 确实,我内网的服务器如果开了科学,客户端死活连接不上。关掉科学就好了。
    satoru
        14
    satoru  
       2023-08-13 09:36:03 +08:00
    最近好像还多了个 Narrowlink https://narrowlink.com/docs/intro
    loveqianool
        15
    loveqianool  
       2023-08-13 10:07:59 +08:00
    MrTlyer
        16
    MrTlyer  
       2023-08-13 11:11:03 +08:00
    看你做什么用,l2tp 和 RDP 有时候更方便,WG 也行,最后设置分流,tailscale 好像是被墙了使用不便
    ye4241
        17
    ye4241  
    OP
       2023-08-13 11:29:57 +08:00
    @shelken #2 设置了的,OpenWrt 跑一段时间后,竟然自己重启了
    ye4241
        18
    ye4241  
    OP
       2023-08-13 11:30:41 +08:00
    @zhuang0718 #1 在云服务器上面连接的,是好是坏,本地现在连接正常的,可能是因为本机有代理吧。
    ye4241
        19
    ye4241  
    OP
       2023-08-13 11:31:24 +08:00
    @thereone #3 有个是公司的网络的,很早的号,有 ipv4 分配,电信说,要开 ipv6 就要放弃 ipv4 的,有点没舍得。
    ye4241
        20
    ye4241  
    OP
       2023-08-13 11:32:27 +08:00
    @zyq2280539 #5 是的,主要没办法同时连接两个自建 server 的,如果只用一个 server 的话,连接的设备别人都能看到。
    ye4241
        21
    ye4241  
    OP
       2023-08-13 11:33:08 +08:00
    @yyysuo #8 是的,他只能连接一个 tunnel 的,主要有两个私网网段,想要隔离开。
    ye4241
        22
    ye4241  
    OP
       2023-08-13 11:33:56 +08:00
    @mhycy #9 的确是的,我的腾讯云似乎就是广州节点,planet 只有一个的,现在似乎必须要自建 planet 试试看了。
    ye4241
        23
    ye4241  
    OP
       2023-08-13 11:34:51 +08:00
    @MrTlyer #16 可以自建 tailscale 的,新版本的 iOS 也能连接到自建的,就是没办法同时连接到两个自建的 server 。
    ye4241
        24
    ye4241  
    OP
       2023-08-13 11:52:20 +08:00
    @satoru #14 看图应该是全部靠中转服务器的,这样子的话,和 p2p 的直连速度目测有差距
    shelken
        25
    shelken  
       2023-08-13 13:20:15 +08:00 via iPhone
    @mhycy 没错,就是深圳电信,最近发现了。跟你说的情况一样
    CTd1DJnr6KlM
        26
    CTd1DJnr6KlM  
       2023-08-13 13:54:10 +08:00
    换 wireguard 客户端不就好了,clash meta 支持 wireguard,直接走分流,只要不是同一个 IP-CIDR 就能分流
    Siefy1983
        27
    Siefy1983  
       2023-08-13 14:32:44 +08:00 via iPhone
    @ye4241 大佬,转发的设置能指导一下么
    lylmydear
        28
    lylmydear  
       2023-08-13 15:02:02 +08:00 via iPhone
    wg 用 cladh 走分流有弊端,smb 共享无法使用,pc 用的话还是 zerotier 加 clash ,手机 surge 。这样的话回家 fq 两不误
    chenghj87
        29
    chenghj87  
       2023-08-13 17:31:44 +08:00
    一直用 zerotier ,简单好用。
    PatrickLe
        30
    PatrickLe  
       2023-08-13 17:34:26 +08:00
    请教下用 wg 的,服务器上配置了 wg ,日用的 Mac 用 surge 跑 wg ,可以使用服务器的 SMB 共享嘛?性能如何?
    ye4241
        31
    ye4241  
    OP
       2023-08-13 20:01:40 +08:00
    @simplove #4 又重新验证了自建的逻辑,成功但是成功了,但是需要客户端也必须用自定义的 planet ,不然客户端就连接不上的,所以 iOS 就有点无解了。
    ye4241
        32
    ye4241  
    OP
       2023-08-13 20:03:04 +08:00
    @chenghj87 #29 是啊,兜兜转转,最终回到 zerotier 的怀抱。
    ye4241
        33
    ye4241  
    OP
       2023-08-13 20:03:55 +08:00
    @PatrickLe #30 可能大概需要将 Mac 当成旁路由?但是服务器上面为啥不直接用 wireguard 客户端的呢?
    ye4241
        34
    ye4241  
    OP
       2023-08-13 20:06:14 +08:00
    @Siefy1983 #27 zerotier 的转发就是加个路由表的,前面写目标网段,后面写在目标网段内连接了 zerotier 的机器分配的 ip ,同时需要注意,将内网的机器开一下 ipv4 转发、和防火墙的。

    galaxyskyknight2
        35
    galaxyskyknight2  
       2023-08-13 20:53:24 +08:00
    zerotier 自建 planet ,随便找个轻量,杠杠的,移动电信互联互通没任何问题
    flynaj
        36
    flynaj  
       2023-08-13 21:27:01 +08:00 via Android
    zerotier 最好,性能,方便配置,但是有部分网络会墙掉,自建 moon 自建 planet 都没有用,是协议不通,我这里中国移动 IPv4 直接墙了这个协议,v6 畅通无阻。
    cx9208
        37
    cx9208  
       2023-08-13 22:52:14 +08:00
    试试 netmaker
    bao3
        38
    bao3  
       2023-08-14 04:53:18 +08:00
    我使用 n2n 自己编译组网,比这些协议都方便太多,不过用途各不相同。要玩游戏,n2n 很爽
    gps949
        39
    gps949  
       2023-08-14 10:51:36 +08:00
    因为一直在搞基于 Tailscale 的开发,所以想问一下 OP 说的:
    “想要同时连接两个 server 的话,特别麻烦,而且只能同时连接一个的” 是指的什么意思?
    gps949
        40
    gps949  
       2023-08-14 10:55:33 +08:00   ❤️ 1
    另外:
    如果使用官网的版本,直接点击登录就好了,如果是自定义的,那就得用命令行操作,而且自定义的目前也不支持 iOS 的。 想要暴露内网的话,命令行连接的适合将--accept-routes 加上,然后去后台那边允许

    确实官方再拥抱开源,也没想着让你很方便使用自定义控制器。 但是,iOS 现在已经支持了(支持有快半年了)。
    顺便,我这边开发的 Windows 、iOS 、Android 、群晖版本都可以很方便支持设置控制器地址(因为我这边也搞了个有图形化的控制器),至于子网转发( subnet )有的添加了这个功能(如群晖),有的还没添加,因为确实不知道需求量有多大。
    有兴趣的可以看我这两个帖子:

    https://www.v2ex.com/t/936105
    https://www.v2ex.com/t/961711
    ZColin
        41
    ZColin  
       2023-08-14 11:33:36 +08:00
    @shelken #25 巧了 我也 广州腾讯云+深圳电信 全麻啥都连不上,换 n2n 了
    Xiaosteven
        42
    Xiaosteven  
       2023-08-14 13:59:19 +08:00
    @mhycy 我也是上周五开始这样的,请问自建 planet 可以吗?或者有没有替代方案
    mhycy
        43
    mhycy  
       2023-08-14 14:02:07 +08:00
    @Xiaosteven
    我有点想重构 zerotier 了,这东西底层协议有点不适应国情,但工作量很大
    Xiaosteven
        44
    Xiaosteven  
       2023-08-14 14:13:08 +08:00
    @mhycy zerotier 核心部分没有开源吧,可以重构吗?或者和 surge 作者一样如果有个新的协议能在国内 p2p 也挺好的。现在就不知道有没有啥替代方案了,如果自建 planet 也不行就挺麻烦的了
    mhycy
        45
    mhycy  
       2023-08-14 14:18:49 +08:00
    @Xiaosteven
    也就剩下面板没开源了,但不开源也不影响另起炉灶,反正不兼容
    Xiaosteven
        46
    Xiaosteven  
       2023-08-14 14:27:17 +08:00
    @mhycy 要不在 github 上开个项目?深圳电信以前都没有遇到过 ban zerotier 协议的情况,不知道这段时间发啥疯。
    Xiaosteven
        47
    Xiaosteven  
       2023-08-14 14:28:51 +08:00
    @zqmsoft 请问是自建 planet 挂了吗?我还想自建一个替代呢,如果自建也没有用那估计就没了
    Yzh361
        48
    Yzh361  
       2023-08-14 14:35:20 +08:00
    zerotier 挺方便的
    ye4241
        49
    ye4241  
    OP
       2023-08-14 14:42:39 +08:00
    @gps949 #39 就是 tailscale 同时只能连接到一个自建的 server 上面的,如果想要切换到另外一个 server ,只能点击切换账号的,但是 tailscale 我看有 acl 控制,感觉用一个 server 也不是不行的。
    mhycy
        50
    mhycy  
       2023-08-14 14:44:07 +08:00
    @Xiaosteven
    造出架子肯定开项目,但工作忙得跳舞……唉~
    ye4241
        51
    ye4241  
    OP
       2023-08-14 14:52:11 +08:00
    我一顿操作后,现在正常了,也不知道为啥他就正常了。现在 zerotier 官方后台管理,官方的 planet 的,自建创建了个 moon ,但是本地并没有 orbit 那个 moon ,广州腾讯云能用了。

    ```
    version: '3'

    services:
      zerotier:
        image: zyclonite/zerotier:router
        container_name: zerotier-one
        devices:
          - /dev/net/tun
        network_mode: host
        volumes:
          - ./data/zerotier:/var/lib/zerotier-one
        cap_add:
          - NET_ADMIN
          - SYS_ADMIN
          - NET_RAW
        restart: unless-stopped
        environment:
          # - TZ=Etc/UTC
          - PUID=1000
          - PGID=1000
          - ZEROTIER_ONE_LOCAL_PHYS=eth0
          - ZEROTIER_ONE_USE_IPTABLES_NFT=false
          - ZEROTIER_ONE_GATEWAY_MODE=both
          # - ZEROTIER_ONE_NETWORK_IDS=«yourDefaultNetworkID(s)»
    ```
    gps949
        52
    gps949  
       2023-08-14 15:08:25 +08:00
    @ye4241
    理解了,你说的这个问题最主要的问题是 headscale 本身不支持多租户、不支持节点分享、不支持用户邀请(加入到租户内)、不支持动态 ACL 设置( ACL 还不支持 autogroup ,至少之前看是这样,不知道近半年 headscale 有什么长进不)。
    如果用官方 Tailscale 基于上面这些特性,不切换租户/server 连接也足够实现大部分需要了。
    前面回复中提到我搞得一个就是给 headscale 加上 webui 、多租户、节点分享、用户邀请入租户(暂未完成)、webui 上动态 ACL 编辑及 autogroup 等能力……
    目前还没正式发版,但是想要体验一下看看是否值得期待的可以看看 https://sdp.nopkt.com
    强调一下还未发版,开的这个 demo 网址也并不稳定,仅供体验,如需二进制可以联系,如有兴趣可以期待一下后续的发版及开源
    Xiaosteven
        53
    Xiaosteven  
       2023-08-14 15:20:42 +08:00
    @ye4241 请问这个是自建的镜像吗?所以最后解决办法还是自建的 planet?
    ye4241
        54
    ye4241  
    OP
       2023-08-14 16:09:39 +08:00
    @Xiaosteven #53 没有,这个是有人从官方源码编译出来的最新版本的,没有动过 planet ,现在 zerotier 也正常的运行起来了。
    ZedRover
        55
    ZedRover  
       2023-08-14 17:01:39 +08:00
    lanlandezei
        56
    lanlandezei  
       2023-08-14 21:07:01 +08:00
    我选 N2N
    hanguofu
        57
    hanguofu  
       2023-08-14 21:58:03 +08:00 via Android
    @bao3 : 好奇问问:为什么要自己编译啊?
    banmuyutian
        58
    banmuyutian  
       2023-08-15 14:56:17 +08:00
    最近廣州電信下 zerotier ipv4 全瞎了,聯通 ipv6 還能連
    keyfunc
        59
    keyfunc  
       2023-08-15 15:42:50 +08:00
    有公网 IP 的话,都不用考虑,肯定 wg 啊。
    Xiaosteven
        60
    Xiaosteven  
       2023-08-15 16:23:56 +08:00
    今天上午试了下自建的 planet ,深圳电信下测试通过。看来只是 ban 了官方的 planet ,自建的还是能继续用的。不过现在唯一的问题是 ios 没法替换 planet ,不知道能不能通过改签名然后用自己手机测试的方式来修改官方 ios 客户端
    ye4241
        61
    ye4241  
    OP
       2023-08-15 22:27:00 +08:00
    @Xiaosteven #60 有点难,好像都要越狱的 https://github.com/lemon4ex/ZeroTieriOSFix
    Xiaosteven
        62
    Xiaosteven  
       2023-08-16 10:43:23 +08:00
    @ye4241 其实 1.8.4 的 ios 版本改签应该也可以
    samyucn
        63
    samyucn  
       2023-09-07 18:21:12 +08:00 via iPhone
    直接走公网,除开 80 443 那么多端口随便用
    yqs112358
        64
    yqs112358  
       1 天前
    zerotier 和 tailscale 的本质区别:

    1. 网络底层实现
    zerotier 是二层(数据链路层)虚拟组网方案,更贴近理解上的 “虚拟局域网” 的概念,对于大部分协议都有比较好的支持
    tailscale 是基于 wireguard 的三层(网络层)点对点虚拟组网方案,其主要支持三层协议的点对点通信。某些需要二层支持的协议 Tailscale 无法使用。比如,截至目前( 2024.10 )并不支持 UDP 广播、mDNS 、Bonjour 等,导致一些设备互联 / 游戏等场景下的的局域网设备发现无法正常工作。

    2. 通信协议
    zerotier 通过 TCP 协议直连通信。自建 moon 服务器进行中继时默认使用 UDP 通信,不过可以在客户端手动切换到 TCP 中继模式
    tailscale 基于 wireguard ,直连时使用 UDP ,高峰期或者大流量下可能受到运营商 QoS 。自建 derp 服务器中继则是使用 TCP 进行中继通信,相对较为稳定。

    3. 附属生态与功能
    tailscale 有非常丰富的附属功能,如文件投送、子网路由、出口路由、自定义 DNS 等等。
    zerotier 专注于实现虚拟组网,附属功能较少。

    至于 wireguard ,Tailscale 可以理解为带 SDN 的 wireguard ,不用手动配节点配置,而且带一堆附属功能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5424 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:27 · PVG 15:27 · LAX 23:27 · JFK 02:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.