tailscale 是真听劝呀, peer relay 来了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LuvF
V2EX    分享发现

tailscale 是真听劝呀, peer relay 来了

  •  2
     
  •   LuvF 22 天前 via Android 6985 次点击

    免费版也支持,可以指定 2 个节点作为 relay

    https://tailscale.com/blog/peer-relays-beta

    88 条回复    2025-11-05 21:57:10 +08:00
    ferock
        1
    ferock  
    PRO
       22 天前 via Android
    什么版本开始支持?看起来不错
    LuvF
        2
    LuvF  
    OP
       22 天前 via Android
    totoro625
        3
    totoro625  
       22 天前
    太好了,自建 derp 节点总是莫名其妙的能用+莫名其妙的不能用,希望 peer relay 好用一些 /t/1042194
    evill
        4
    evill  
       22 天前
    大大利好,不过看文档使用的固定端口 没公网 ip 的有点难受
    LuvF
        5
    LuvF  
    OP
       22 天前 via Android
    @totoro625 这个 relay 的优先级高于 derp ,但是 derp 的打洞功能 relay 替代不了,并不能完全替代
    LuvF
        6
    LuvF  
    OP
       22 天前 via Android
    @evill 还没测试 不知道用其他端口可不可行
    evill
        7
    evill  
       22 天前
    div class="reply_content">@LuvF 我看功能介绍第一反应就是能够 Stun 多好
    周末升级上来试试
    rick13
        8
    rick13  
       22 天前
    这个是干嘛的呢?我现在用 tailscale 是 ipv6 直连,这个是作为失败的一个中转站?
    LuvF
        9
    LuvF  
    OP
       22 天前 via Android
    @rick13 是的 直连不了的可以通过节点中转互联
    evill
        10
    evill  
       22 天前
    @rick13 不是,这是能够通过客户端的 UDP 作为中继器,暴露内部网络了
    之前客户端只能出,不能入
    虽然 exit node 也能出但是不适合中继器,几乎就是用来翻墙了
    x2rr
        11
    x2rr  
       22 天前
    谁来解释一下?自建 derp 是可以退役了吗?
    LuvF
        12
    LuvF  
    OP
       22 天前 via Android
    @x2rr 感觉可以把 derp 的中继关掉了 只保留 stun 功能
    zwlinc
        13
    zwlinc  
       22 天前
    tailscale 已经是是我的网络基建了,任何设备,都要先装个 tailscle 。这个特性看起来也非常有用,马上就试试。
    LuvF
        14
    LuvF  
    OP
       22 天前 via Android
    @zwlinc 加一 所有设备必装
    fortitudeZDY
        15
    fortitudeZDY  
       22 天前   2
    除了这个 peer relay 外,对于企业组织账号也开始试支持 multiple tailnet 了。

    个人认为:peer relay 更多是解决了 derp 部署的复杂度(包括证书、认证啥的),以及公共 derp 的性能不佳的问题,如果能自建 derp ,其实搞不搞 peer relay 都没有太大区别,而且 peer relay 走 udp(底层走了 geneve 封装),可能转发速度还不如基于 https(upgrade 成私有协议)的 derp 。
    ferock
        16
    ferock  
    PRO
       22 天前
    @LuvF #2

    感谢,去研究一下
    thetbw
        17
    thetbw  
       22 天前
    试了,强,搞 derp 还要证书和备案,这下都不用了,整了自己的大内网。之前家里有些机器能穿透,有些不行,都是用跳板机实现的,现在跳板机也不用了,保证一个能穿透就行
    ferock
        18
    ferock  
    PRO
       22 天前
    自建 headscale 服务器支持吗
    ferock
        19
    ferock  
    PRO
       22 天前
    似乎自建不行。。。等 headscale 更新
    liuzimin
        20
    liuzimin  
       22 天前
    我还是没太明白。这个和 derp 的区别是啥? derp 不也可以作中转吗?
    或者如果把某个终端作为 relay ,和 exit-node 的区别又是啥?如果终端都没有公网 IP ,是不是其实也玩不了这个 relay ?
    liuzimin
        21
    liuzimin  
       22 天前
    @thetbw #17 derp 有不需要域名证书和备案的纯 IP 搭建方法,安全性之前也有讨论过。。
    LuvF
        22
    LuvF  
    OP
       22 天前 via Android
    @liuzimin 我觉得对于个人来说比 derp 更容易搭建,更方便管理,这是 tailscale 自带的一个功能,一句命令就能开启,而且不用考虑防白嫖,至于性能方面差距还有待测试了
    LuvF
        23
    LuvF  
    OP
       22 天前 via Android
    @ferock 应该要服务端支持 需要添加 acl 规则
    m1nm13
        24
    m1nm13  
       22 天前
    @liuzimin #20 就是这回不需要有一个公网 IP 的机器做 DERP 了,只要有一台机器能 fullcone 出去, 其他机器都能通过这个机器做跳板来连接. 之前 easytier 牛逼就牛逼在这里.
    chen1210
        25
    chen1210  
       22 天前
    没看懂 [tag: ] 后面跟的是机器的 hostname 吗,卡在 Access controls 这里了
    qsnow6
        26
    qsnow6  
       22 天前
    @liuzimin #20 大部分情况下可以不用 custom derp 了,声明为 relay 后,不能直连的设备,自动通过 relay 设备来直连
    LuvF
        27
    LuvF  
    OP
       22 天前 via Android
    @chen1210 在这里面创建 tag 比如 relay ,nas 啥的 https://login.tailscale.com/admin/acls/visual/tags
    然后到机器列表里面,点机器后面的三个点 里面有 edit acl tags ,给机器添加 tag ,中转机器的用 relay ,被访问的机器用 nas ,然后按照文档添加 peer relay policy
    2han9wen71an
        28
    2han9wen71an  
       22 天前
    之前换过 tailscale ,发现不能同时加入多个网络(个人家庭 NAS 网络和公司开发环境网络),还是换回 zerotier 了
    issakchill
        29
    issakchill  
       22 天前
    tailscale 有时候不能 direct 现在是 ts+easytier 都用上
    chen1210
        30
    chen1210  
       22 天前
    @LuvF #27 搞定了,感谢
    liuzimin
        31
    liuzimin  
       22 天前 via Android
    @m1nm13 #24 还是没懂一个连公网 IP 都没有的机器是怎么成为中继的?不是应该连都连不上这个中继机器吗?
    LuvF
        32
    LuvF  
    OP
       22 天前 via Android
    @liuzimin 应该是能通过固定端口访问就能做中继
    jujusama
        33
    jujusama  
       22 天前
    和 exit-node 有什么区别
    zwlinc
        34
    zwlinc  
       22 天前
    我在同一个机器上既有 derp 也有 peer-relay ,只有把 derp 关了才会走 peer-relay ,怎么感觉和文档中描述的策略不一致呢,不是说有限 peer-relay 么
    LuvF
        35
    LuvF  
    OP
       22 天前 via Android
    @jujusama exit 是全局的吧 全部流量都走,relay 只是用来优化 tailnet 节点之间访问的手段 节点之间优先直连 连不上再走 relay 其他 tailnet 以外的流量不会走 relay
    LuvF
        36
    LuvF  
    OP
       22 天前 via Android
    @zwlinc 可能还有 bug ?毕竟还是 beta ,我还没部署好
    lqzhgood
        37
    lqzhgood  
       22 天前
    现在在用 zerotier , 但是 k3 的 cpu 有点带不动~ zt0 桥接速度跑不到百兆~
    zt0 缺点的话,单网络数量限制 20 个,DNS 支持也有点麻烦(需要一个中央 DNS ,不能下发),有点想换了~

    so~ zerotier tailscale easytier 有大佬能总结一下优缺点么~~

    我知道的 t0 桥接完整支持 layer2 , 网络发现层面更像 “本地” 一点~
    Hitori0221
        38
    Hitori0221  
       22 天前 via iPhone
    赞,已经配置上了,国内设备无脑走精品线路中转,现在这个跨网 QoS 情况真不如全局走中转。
    jingcjie
        39
    jingcjie  
       22 天前
    @SuzutsukiKaede 大佬,精品线路中转指的是什么啊?我就在当前城市买的云自建的 derp 。
    w568w
        40
    w568w  
       22 天前   1
    呃,不是特别清楚为啥这个功能会喜大普奔? EasyTier 从 Day1 就有这个功能了,没见有人天天吹啊
    ronman
        41
    ronman  
       22 天前
    @zwlinc #13 请问下和 wireguard 比有什么优势吗?我有公网 ip ,各设备都是跑的 wireguard
    zwlinc
        42
    zwlinc  
       22 天前   4
    @ronman 不确定你怎么用 wireguard 的,如果想用 wireguard 实现类似 tailscale 的自动 p2p 打洞,有非常多的工作要做,如果你只是 wireguard 连到一个中心化的机器,taiscale 的优势就是能 p2p ,不能 p2p 的话自动中继,同时省去了非常多的配置下发等工作(只需要登陆同一个账号即可),也有全平台的支持。总之就是非常省心。而如果不想登陆 tailscale 的官方服务器,也可以选择自建 headscale 。我也非常欣赏 tailscale 的博客,他们写了挺多关于 tailscale 具体如何工作的文章,那篇 How NAT traversal works ,我相信很多人关心这个领域的都读过。确实在组网这个领域也有很多竞品软件,如 zerotier/netbird 等,选一个你喜欢的也没什么问题,但我确实最喜欢的就是 tailscale ,简单且好用。
    BeautifulSoap
        43
    BeautifulSoap  
       22 天前   1
    看了上面回复半天,还是没说清楚和 derp 的区别。然后看了文档,个人理解感觉和 derp 的区别也就是

    1. tailnet 中的任一节点都能成为中继节点,不需要再像 derp 那样要配置 ssl 证书,也不像 derp 那样默认万人都可骑( derp 配置私有挺麻烦的)
    2. 基于 udp 性能比 derp 好非常多( udp 不被干扰的话。但鉴于现在公网中 dup 包的传输质量。。。。)
    3. ***其他节点必须能直接访问到中继节点的指定 udp 端口***,所以和 derp 一样中继节点依旧需要公网 ip (似乎能完全穿透的 nat 下的设备也能当中继节点,但问题是现在竟然还有给你 full cone nat 的宽带么。。。。)

    看 blog 感觉企业用户会是最大的收益方,对解决跑现在云服务中 nat 没法穿透的好,通过 derp 中继又性能太差的解决办法。企业用户往往是在同一个云或大的网内组网,命名理论联通性能非常高但因为 derp 中继导致成为性能瓶颈。
    感觉对个人用户通过公网组网来说,算是多了个可选项吧。不至于太激动人心的功能
    qwertty01
        44
    qwertty01  
       22 天前
    早就转成 netbird 了
    ykb8121
        45
    ykb8121  
       22 天前
    各位大佬们,现在的方案是 headscale + 自建 derp + tailscale 客户端。
    我理解这个对我目前的方案没太大影响,是针对国内使用 tailscale 云服务 + tailscale 客户端 的优化,只不过不再需要折腾自建 derp ,而是去搭 relay 对吗
    good
        46
    good  
       22 天前
    以前用过 tailscale,后面发现还是 easytier 好用
    shakukansp
        47
    shakukansp  
       22 天前
    @BeautifulSoap 假如你有 nat4 设备(比如流量卡插 cpe 里面),国内的 vps 当 derp 但是没有 ipv6 ,靠这个就可以 direct 。
    hausen
        48
    hausen  
       22 天前
    @2han9wen71an 我也想同时加入多个不同的 tailscale 网络,似乎行不通,不知道有咩有大佬搞过
    BeautifulSoap
        49
    BeautifulSoap  
       22 天前
    @shakukansp 没看懂你说的什么,你说的这情况,哪个是做 peer relay 节点?有公网的 [国内的 vps ] 吗?那这时候无法直连的设备依旧需要通过有公网 ip 的 vps 作为 peer relay 做转发。只不过 vps 直接通过 udp 转发更好了
    liuzimin
        50
    liuzimin  
       22 天前
    @hausen #48 我刚才试了一下,可以同时加入不同 tailscale 网络呀。你直接先后加入两个网络就行了,然后系统托盘菜单在账号那一栏就会有两个账号,想用哪个直接切换到哪个就行,很丝滑。
    shakukansp
        51
    shakukansp  
       22 天前
    @BeautifulSoap 那是我理解错了,这个对打洞成功率没影响
    SenLief
        52
    SenLief  
       22 天前
    这个功能还挺好用的,以往的时候 peer 和 peer 之间连接的时候如果两端都是 nat ,就需要通过 derp 来中转,现在你可以使用另外一个组内无 nat 的 peer 作为 relay 来中转流量。

    我之前有设备就是 nat ,没办法的情况下就是在家里一台有公网 ipv6 的设备上同时搭建了 peer 和 derp ,目前也是多台设备即使 peer 也是 derp 的,现在看来可以去掉了,直接声明 relay 了,不过国内的 udp 问题太严重,不一定是好事。
    liuzimin
        53
    liuzimin  
       22 天前
    @BeautifulSoap #49 我对这点挺疑惑的。假设在一个脱离了 derp 就不可能跑通的恶劣网络环境里,各个节点的联系靠的就是 derp ,那把其中一个节点作为 relay ,不也是要跑在 derp 的基础上才能通吗。。。也许就像你说的,最大的区别可能就是 TCP 变为 UDP 了?
    hausen
        54
    hausen  
       22 天前
    @liuzimin #50 我是想不用切换那种,放在不是有路由不是,哪个路由走哪个网络应该也可以确定的吧
    liuzimin
        55
    liuzimin  
       22 天前
    如果对打洞都打不通的网络环境而言,是不是并没有啥意义?
    BeautifulSoap
        56
    BeautifulSoap  
       22 天前 via Android
    @liuzimin 就是 derp 的一个性能更好,配置更简单的替代,和打洞直连之类的没什么关系。
    derp 是用 tcp+ssl 的方式把 wireguard 的 udp 包装了进行转发,所以性能比较差。
    对于同一个云或网络内的节点交互来说,每个节点间的网络带宽在 Gbps 以上都是正常的,但因为一些原因导致节点间必须通过 derp 转发的话传输性能损失会非常大。用 peer relay 直接 udp 端口转发(有没有包装就不知道了)数据能提升好几倍的性能。所以我说这次收益最大的就是企业用户了。
    对直接在公网组网的个人来说,就家里宽带和公网那传输带宽,换成 peer relay 性能提升可能有限。而且你还得祈祷运营商不 qos 你的 udp 包
    tangzs
        57
    tangzs  
       22 天前
    请教一下达人,
    我的网络需求中,有 “手机移动网络“,“家庭网络“ 和 “公司网络“, 其中,只有“公司网络“有公网 IP 地址,
    我还在腾讯云上自建了一个 derp ( ip 方式,不是很安全),用于手机与家里访问时有办法握手,
    这种情况下,配置 tailscale peer relays 会有什么帮助呢?
    zwlinc
        58
    zwlinc  
       22 天前
    @tangzs 56 楼说的对
    v00O
        59
    v00O  
       22 天前
    不一直都有吗?
    fortitudeZDY
        60
    fortitudeZDY  
       22 天前
    @tangzs 这种情况下,你可以考虑把公里的节点配置为 relay ,然后可以不用建立 derp 了,因为目前看 tailscale 的策略时先打洞,打洞不成尝试走 relay ,derp 做为最后的 fallback
    fortitudeZDY
        61
    fortitudeZDY  
       22 天前
    @v00O 不是一回事,derp 采用的协议和 peer relay 不一样。
    susandownes
        62
    susandownes  
       22 天前
    设置了 tag 的设备,无法使用 tailscale 的文件传输功能,不知道是不是 bug
    tangzs
        63
    tangzs  
       22 天前
    @fortitudeZDY 多谢,我试试看
    billzhuang
        64
    billzhuang  
       22 天前
    和 advertise-route 有撒区别?
    LuvF
        65
    LuvF  
    OP
       21 天前
    @zwlinc https://tvax1.sinaimg.cn/large/008CqthRgy1i6urjk7pukj30zk0qon40.jpg
    我试了一下 好像第一次是用 derp 后面就换成 relay 了 应该就是 relay 优先
    LuvF
        66
    LuvF  
    OP
       21 天前
    pong from unraid (100.66.6.5) via DERP(jzy) in 82ms
    pong from unraid (100.66.6.5) via peer-relay(14.103.xx:40000:vni:53) in 11ms
    pong from unraid (100.66.6.5) via peer-relay(14.103.xx:40000:vni:53) in 11ms
    pong from unraid (100.66.6.5) via peer-relay(14.103.xx:40000:vni:53) in 12ms
    pong from unraid (100.66.6.5) via peer-relay(14.103.xx:40000:vni:53) in 12ms
    pong from unraid (100.66.6.5) via peer-relay(14.103.xx:40000:vni:53) in 12ms
    pong from unraid (100.66.6.5) via peer-relay(14.103.xx:40000:vni:53) in 15ms
    pong from unraid (100.66.6.5) via peer-relay(14.103.xx:40000:vni:53) in 12ms
    pong from unraid (100.66.6.5) via peer-relay(14.103.xx:40000:vni:53) in 12ms
    pong from unraid (100.66.6.5) via peer-relay(14.103.xx:40000:vni:53) in 12ms
    direct connection not established
    LuvF
        67
    LuvF  
    OP
       21 天前 via Android
    @billzhuang
    用 peer relay 需要被访问节点也安装 ts ,advertise-route 不需要
    relay 是备用手段 优先打洞直连 直连失败才走 relay advertise-route 不能直连
    做 relay 的节点不需要跟要访问的节点在一个子网里
    用 relay 只需要设置做 relay 的节点和添加 acl 其他客户端不需要进行额外设置
    nginxxx
        68
    nginxxx  
       21 天前
    能 docker 部署吗,比如家里的 nas 部署,有公网 ip,然后在外都可以用家里的 nas 做中继
    LuvF
        69
    LuvF  
    OP
       21 天前 via Android
    @nginxxx 应该是可以的 tailscale 本来就支持 docker 部署 要开启 relay 应该在 environment 里面加上 TS_EXTRA_ARGS=--relay-server-port=40000 端口可以任意 然后按照上面文档里加上 acl 规则就行了
    nginxxx
        70
    nginxxx  
       21 天前
    啥时候 twingate 能支持就好了,目前应该是唯一支持域名分流的工具
    antpi
        71
    antpi  
       21 天前
    是否必须公网 ip 还是只要开放固定 udp 端口就可以呢
    LuvF
        72
    LuvF  
    OP
       21 天前 via Android
    @antpi 目前测试发现 nat 鸡通过端口映射做 relay 不可行 入口 ip 跟 tailscale 后台显示不一致 其他环境没试过 你可以试试看
    antpi
        73
    antpi  
       21 天前
    @LuvF #72 好的,我试试看
    mssi
        74
    mssi  
       21 天前 via Android
    端口只开 udp ,还需要开 tcp 吗?
    LuvF
        75
    LuvF  
    OP
       21 天前 via Android
    @mssi 文档说只要 udp
    a56143575
        76
    a56143575  
       19 天前
    收藏一下
    a56143575
        77
    a56143575  
       19 天前
    挺多关于 tailscale 具体如何工作的文章,那篇 How NAT traversal works
    hash
        78
    hash  
       18 天前


    似乎一旦通过 peer-relay 连接,那么永远无法打洞成功
    Chengnan049
        79
    Chengnan049  
       17 天前
    @hausen #54 可以,用 ACL
    Chengnan049
        80
    Chengnan049  
       17 天前
    @jujusama xit Node 是出口,例如你在公司,你想访问一个网站,这个网站仅限你家里的 IP 或者要求 IPV6 而你公司没有,那你就可以给出口节点设置成家里的机器,流量就变成 Exit 那台机器的了。而这次的 Peer Relays 是把任意一个网内设备当作 DERP
    Chengnan049
        81
    Chengnan049  
       17 天前
    @susandownes 是这样的 ,官方回复
    > I’m afraid that Taildrop does not currently work with nodes that are tagged. You can find that limitation mentioned in our documentation here: https://tailscale.com/kb/1106/taildrop#send-files-with-taildrop

    In order to use Taildrop with a certain device, that device must be authenticated as a user, and only other devices owned by the same user will be accessible.
    Chengnan049
        82
    Chengnan049  
       17 天前
    @hash 没有哈,正常
    hausen
        83
    hausen  
       16 天前 via Android
    @Chengnan049 没试过,有教程吗,谢谢
    Binlabs
        84
    Binlabs  
       16 天前
    可惜不支持 mdns ,很多内网服务没法自发现,不然就完美了。
    LuvF
        85
    LuvF  
    OP
       16 天前 via Android
    susandownes
        86
    susandownes  
       16 天前
    @LuvF #27 除了使用 tag ,官方还提供了第二种配置方法,直接作用在 user 节点上无需设置 tag ,用法如下:

    在 grants 区域的默认配置下方添加
    {
    "src": ["*"], // 允许发起 relay 请求的节点
    "dst": ["100.98.xx.xx", "100.72.xx.xx"], // peer relay server
    "app": {
    "tailscale.com/cap/relay": [],
    },
    }

    注意不要删除默认配置↓
    {"src": ["*"],"dst": ["*"],"ip": ["*"],},


    @Chengnan049 #81 是的,设置了 tag 的设备除了 Taildrop 还有一些其他限制,后面我换了另一种无需 tag 的用法使用 peer relay
    LuvF
        88
    LuvF  
    OP
       16 天前 via Android
    @susandownes 嗯嗯 我不用 taildrop 所以用 tag 也没啥影响,,
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2669 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 14:10 PVG 22:10 LAX 06:10 JFK 09:10
    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