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

zerotier / tailscale / wireguard 怎么选?

  •  1
     
  •   ye4241 · 259 天前 · 6997 次点击
    这是一个创建于 259 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自建过程

    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 后重启,我一直没有成功的,现在用的官网版本也挺好的。

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

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

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

    https://www.v2ex.com/t/936105
    https://www.v2ex.com/t/961711
    zqmsoft
        41
    zqmsoft  
       257 天前
    @shelken #25 巧了 我也 广州腾讯云+深圳电信 全麻啥都连不上,换 n2n 了
    Xiaosteven
        42
    Xiaosteven  
       257 天前
    @mhycy 我也是上周五开始这样的,请问自建 planet 可以吗?或者有没有替代方案
    mhycy
        43
    mhycy  
       257 天前
    @Xiaosteven
    我有点想重构 zerotier 了,这东西底层协议有点不适应国情,但工作量很大
    Xiaosteven
        44
    Xiaosteven  
       257 天前
    @mhycy zerotier 核心部分没有开源吧,可以重构吗?或者和 surge 作者一样如果有个新的协议能在国内 p2p 也挺好的。现在就不知道有没有啥替代方案了,如果自建 planet 也不行就挺麻烦的了
    mhycy
        45
    mhycy  
       257 天前
    @Xiaosteven
    也就剩下面板没开源了,但不开源也不影响另起炉灶,反正不兼容
    Xiaosteven
        46
    Xiaosteven  
       257 天前
    @mhycy 要不在 github 上开个项目?深圳电信以前都没有遇到过 ban zerotier 协议的情况,不知道这段时间发啥疯。
    Xiaosteven
        47
    Xiaosteven  
       257 天前
    @zqmsoft 请问是自建 planet 挂了吗?我还想自建一个替代呢,如果自建也没有用那估计就没了
    Yzh361
        48
    Yzh361  
       257 天前
    zerotier 挺方便的
    ye4241
        49
    ye4241  
    OP
       257 天前
    @gps949 #39 就是 tailscale 同时只能连接到一个自建的 server 上面的,如果想要切换到另外一个 server ,只能点击切换账号的,但是 tailscale 我看有 acl 控制,感觉用一个 server 也不是不行的。
    mhycy
        50
    mhycy  
       257 天前
    @Xiaosteven
    造出架子肯定开项目,但工作忙得跳舞……唉~
    ye4241
        51
    ye4241  
    OP
       257 天前
    我一顿操作后,现在正常了,也不知道为啥他就正常了。现在 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  
       257 天前
    @ye4241
    理解了,你说的这个问题最主要的问题是 headscale 本身不支持多租户、不支持节点分享、不支持用户邀请(加入到租户内)、不支持动态 ACL 设置( ACL 还不支持 autogroup ,至少之前看是这样,不知道近半年 headscale 有什么长进不)。
    如果用官方 Tailscale 基于上面这些特性,不切换租户/server 连接也足够实现大部分需要了。
    前面回复中提到我搞得一个就是给 headscale 加上 webui 、多租户、节点分享、用户邀请入租户(暂未完成)、webui 上动态 ACL 编辑及 autogroup 等能力……
    目前还没正式发版,但是想要体验一下看看是否值得期待的可以看看 https://sdp.nopkt.com
    强调一下还未发版,开的这个 demo 网址也并不稳定,仅供体验,如需二进制可以联系,如有兴趣可以期待一下后续的发版及开源
    Xiaosteven
        53
    Xiaosteven  
       257 天前
    @ye4241 请问这个是自建的镜像吗?所以最后解决办法还是自建的 planet?
    ye4241
        54
    ye4241  
    OP
       257 天前
    @Xiaosteven #53 没有,这个是有人从官方源码编译出来的最新版本的,没有动过 planet ,现在 zerotier 也正常的运行起来了。
    ZedRover
        55
    ZedRover  
       257 天前
    lanlandezei
        56
    lanlandezei  
       257 天前
    我选 N2N
    hanguofu
        57
    hanguofu  
       257 天前 via Android
    @bao3 : 好奇问问:为什么要自己编译啊?
    banmuyutian
        58
    banmuyutian  
       256 天前
    最近廣州電信下 zerotier ipv4 全瞎了,聯通 ipv6 還能連
    keyfunc
        59
    keyfunc  
       256 天前
    有公网 IP 的话,都不用考虑,肯定 wg 啊。
    Xiaosteven
        60
    Xiaosteven  
       256 天前
    今天上午试了下自建的 planet ,深圳电信下测试通过。看来只是 ban 了官方的 planet ,自建的还是能继续用的。不过现在唯一的问题是 ios 没法替换 planet ,不知道能不能通过改签名然后用自己手机测试的方式来修改官方 ios 客户端
    ye4241
        61
    ye4241  
    OP
       256 天前
    @Xiaosteven #60 有点难,好像都要越狱的 https://github.com/lemon4ex/ZeroTieriOSFix
    Xiaosteven
        62
    Xiaosteven  
       255 天前
    @ye4241 其实 1.8.4 的 ios 版本改签应该也可以
    samyucn
        63
    samyucn  
       233 天前 via iPhone
    直接走公网,除开 80 443 那么多端口随便用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1031 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 18:38 · PVG 02:38 · LAX 11:38 · JFK 14:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.