Tailscale+headscale 方案 延迟超高 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xuemian
V2EX    宽带症候群

Tailscale+headscale 方案 延迟超高

  •  
  •   xuemian 2023-11-29 15:41:38 +08:00 6793 次点击
    这是一个创建于 714 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位大佬,
    因为学校疑似屏蔽了 zerotier 流量被迫转 tailscale
    headscale 节点是凉心云 3M 小水管,
    日常流量 0.003M-0.01M 所以不存在压力。
    日常 ping headscale 节点大约 20ms 左右,
    但是 ping 节点就要 400ms-600ms 非常夸张都能绕地球一圈了。br/> 并且 TCP+UDP 端口全放通也是一样卡。
    访问 openwrt 后方的 PVE 更是需要 2000ms - 4000ms


    节点 1 是 openwrt 节点 2 是 MacBook 节点 3 是 vivopad

    MacBook ping vivopad 的 tailscale 地址 10ms左右.
    MacBook ping openwrt 及下面的节点都是以下结果

    64 bytes from 10.10.10.100: icmp_seq=0 ttl=63 time=467.293 ms 64 bytes from 10.10.10.100: icmp_seq=1 ttl=63 time=470.979 ms 64 bytes from 10.10.10.100: icmp_seq=2 ttl=63 time=477.461 ms 64 bytes from 10.10.10.100: icmp_seq=3 ttl=63 time=478.616 ms 64 bytes from 10.10.10.100: icmp_seq=4 ttl=63 time=444.896 ms 64 bytes from 10.10.10.100: icmp_seq=5 ttl=63 time=422.704 ms 
    64 bytes from 100.64.0.1: icmp_seq=689 ttl=64 time=1102.714 ms 64 bytes from 100.64.0.1: icmp_seq=690 ttl=64 time=841.340 ms 64 bytes from 100.64.0.1: icmp_seq=691 ttl=64 time=426.124 ms 64 bytes from 100.64.0.1: icmp_seq=692 ttl=64 time=812.586 ms 64 bytes from 100.64.0.1: icmp_seq=693 ttl=64 time=428.187 ms 64 bytes from 100.64.0.1: icmp_seq=694 ttl=64 time=1748.903 ms 64 bytes from 100.64.0.1: icmp_seq=695 ttl=64 time=1960.977 ms 64 bytes from 100.64.0.1: icmp_seq=696 ttl=64 time=956.289 ms 64 bytes from 100.64.0.1: icmp_seq=697 ttl=64 time=1175.861 ms 64 bytes from 100.64.0.1: icmp_seq=698 ttl=64 time=1097.904 ms 64 bytes from 100.64.0.1: icmp_seq=699 ttl=64 time=3255.409 ms 64 bytes from 100.64.0.1: icmp_seq=700 ttl=64 time=2535.410 ms 64 bytes from 100.64.0.1: icmp_seq=701 ttl=64 time=1531.569 ms 64 bytes from 100.64.0.1: icmp_seq=702 ttl=64 time=660.256 ms 64 bytes from 100.64.0.1: icmp_seq=703 ttl=64 time=1001.957 ms 64 bytes from 100.64.0.1: icmp_seq=704 ttl=64 time=1198.254 ms 

    到底是啥原因呀? 是必须自建 derp 吗?

    37 条回复    2024-07-19 17:58:36 +08:00
    poisedflw
        1
    poisedflw  
       2023-11-29 15:52:24 +08:00
    在你 headscale 机器上再部一套 derp 就行了,如果两个节点间无法直连会走国外节点中转就非常慢。开启 ipv6 后直连的成功率高。
    zenghx
        2
    zenghx  
       2023-11-29 15:57:48 +08:00
    tailscale ping xxx 看看走的是哪个 derp 服务器,能不能直连上
    Goalonez
        3
    Goalonez  
       2023-11-29 15:59:40 +08:00
    Tailscale netcheck 看一下 drep 的延迟,drep 也自建一个
    xuemian
        4
    xuemian  
    OP
       2023-11-29 16:00:40 +08:00
    @zenghx #2 pong from mbp (100.64.0.2) via DERP(hkg) in 423ms
    xuemian
        5
    xuemian  
    OP
       2023-11-29 16:01:24 +08:00
    @Goalonez #3 Report:
    * UDP: true
    * IPv4: yes, 115.198.240.23:35527
    * IPv6: no
    * MappingVariesByDestIP: false
    * HairPinning: false
    * PortMapping: UPnP
    * Nearest DERP: Tokyo
    * DERP latency:
    - tok: 116.1ms (Tokyo)
    - sfo: 139.4ms (San Francisco)
    - lax: 158.9ms (Los Angeles)
    - sin: 163.9ms (Singapore)
    - den: 173.1ms (Denver)
    - sea: 176.9ms (Seattle)
    - mia: 200.9ms (Miami)
    - ord: 203.3ms (Chicago)
    - nyc: 205.5ms (New York City)
    - tor: 208.4ms (Toronto)
    - dfw: 210.1ms (Dallas)
    - hnl: 230.7ms (Honolulu)
    - mad: 244ms (Madrid)
    - par: 244.9ms (Paris)
    - blr: 268ms (Bangalore)
    - fra: 296ms (Frankfurt)
    - waw: 298.6ms (Warsaw)
    - ams: 299.3ms (Amsterdam)
    - lhr: 308.3ms (London)
    - syd: 322.1ms (Sydney)
    - dbi: 357ms (Dubai)
    - sao: 382.1ms (So Paulo)
    - jnb: 405ms (Johannesburg)
    - nai: 411.2ms (Nairobi)
    - hkg: (Hong Kong)
    OOKAMI
        6
    OOKAMI  
       2023-11-29 16:02:52 +08:00
    headscale 默认使用的还是官方的 derp 服务器清单,你要降低延迟需要部署自己的 derp 服务器,然后改 ACL 配置里的 derpmap ,将自己的 derp 替换上去。
    gps949
        7
    gps949  
       2023-11-29 16:06:03 +08:00
    你这看起来明显没直连走的 DERP 。建议想办法调整走直连,不到万不得已别自建 DERP
    HandSonic
        8
    HandSonic  
       2023-11-29 16:08:36 +08:00
    @gps949 为啥别自建 DERP ?
    qwvy2g
        9
    qwvy2g  
       2023-11-29 16:24:34 +08:00
    derp 别人能白嫖。国内节点 vps 很贵,10m 电信也有 300 多一年,还有实名制问题。
    apiman
        10
    apiman  
       2023-11-29 16:26:12 +08:00
    即使自建了 derp ,也不如节点之间直连的速度快,尤其是在节点都有公网 ipv6 的情况下,简直是秒连接。自建 derp ,如果节点不能直连,就通过 derp 中转,这样速度瓶颈转移到了 derp ,比如只有 3M 的良心云
    coolcoffee
        11
    coolcoffee  
       2023-11-29 16:28:11 +08:00
    我自己就是 headscale 和 tailscale 官方控制平面都在用。headscale 不是非必要,tailscale 的官方控制平面国内直连没有任何问题,你只需要国内自建 derper 节点即可。

    像 headscale 我是给公司搭建的,因为涉及到设备数量限制和接入企业微信 SSO 登录。

    两种无论是在任何地方,都能先通过国内的自建 derper 来快速低延迟中转,当一段存在 NAT 打洞成功就立刻切换成直连了。
    coolcoffee
        12
    coolcoffee  
       2023-11-29 16:32:12 +08:00
    @qwvy2g 不存在白嫖,官方给出的方案是添加--verify-clients 来限制只有自己的网络才能用。
    OOKAMI
        13
    OOKAMI  
       2023-11-29 16:37:00 +08:00
    想白嫖还是可以的,但是要一个个试过去,verify-clients 参数是后面增加的,很多网上的 derp 部署教程没写这个,如果是参考以前教程部署的,那还是能用到,就是得花时间自己试。
    xuemian
        14
    xuemian  
    OP
       2023-11-29 16:37:19 +08:00
    目前采用凉心云做 DERP 中转 13ms 了

    * IPv6: no
    * MappingVariesByDestIP:
    * HairPinning: false
    * PortMapping: UPnP
    * Nearest DERP: tencent-cloud-DERP
    * DERP latency:
    - tencent: 29.7ms (tencent-cloud-DERP)
    zenghx
        15
    zenghx  
       2023-11-29 16:41:15 +08:00
    @xuemian ip 漏了
    unfurl
        16
    unfurl  
       2023-11-29 16:41:31 +08:00
    我就是用自建的 DERP ,稳得很
    gps949
        17
    gps949  
       2023-11-29 16:50:08 +08:00
    @HandSonic
    1 、再怎么说 DERP 也都是中转,总会增加延迟的,所以能想办法搞直连了肯定比走 DERP 强;
    2 、自建 DERP 用作中转的话一般来说要么小水管(带宽小)、要么费用贵、要么延迟大(国外流量便宜带宽大的情况下);

    至于有人说别人能白嫖,那倒不会,因为自建 DERP 可以做鉴别仅限自己的节点走它中转的。
    rnv
        18
    rnv  
       2023-11-29 17:27:09 +08:00
    刚好这几天我也在折腾 tailscale ,谈一下自己的理解:

    headscale 只是 tailscale 控制台的替代,使用 headscale 不能一定提升你设备间的可连接性和降低延迟。

    当你的设备之间互 ping 延迟超高的时候,一般通过 tailscale status 查看都会发现设备间连接是通过 relay 实现的,也就是依赖于 tailscale 官方的 derp 服务器节点,这就说明你设备间打洞不成功。这种情况下就需要你自己部署 derp 节点了。
    rnv
        19
    rnv  
       2023-11-29 17:31:15 +08:00
    @gps949 请问无法直连的设备要调整到可以直连一般从哪些方面入手?

    我家里有公网 IP ,路由器 DMZ 给了一台主机 A ,局域网里还有其他主机 B ,C ,D 等。我用工具查看主机 A 的 Nat Type 是 FullCone ,其他主机 B 是 Symmetric 。在其他网络的另一台设备 Z ,Nat Type 是 Symmetric ,可以跟 A 直连,但跟 B 只能中转。
    shaldon
        20
    shaldon  
       2023-11-29 17:34:01 +08:00
    在控制台的 access controls 加上端口随机化试试
    "randomizeClientPort": true,
    gps949
        21
    gps949  
       2023-11-29 17:38:47 +08:00   1
    @rnv
    一般来说,搞出公网 IPv6 PD 分配下发是最简便的方式。

    你说的这个现象正常,一般路由器(及被 DMZ 的主机)是全锥( FullCone 、NAT1 )的比较常见。连接两端只要有一端是全锥,基本上直连就稳了。
    一般来说当两端情况是 NAT4+NAT4 时基本判死刑无法直连,有一端是 NAT4 而另一端是 NAT3 时也很危险。

    就你的情形可以考虑看看是否开启 UPnP ,开启看看是否有帮助。更建议的是一个局域网中没必要都装 Tailscale 客户端,而是主要通过路由器(或被 DMZ 的主机)做整个局域网 NAT 的 subnet 子网转发,这样比较简便。
    xuemian
        22
    xuemian  
    OP
       2023-11-29 18:59:05 +08:00
    @coolcoffee #12 在 config.yaml 里加了行
    verify_clients: true
    jonty
        23
    jonty  
       2023-11-29 19:33:45 +08:00
    前段时间 v 站的 9 块钱阿里云拿来做 derp 节点了。。现在 10ms 左右的延迟
    Sekai
        24
    Sekai  
       2023-11-29 20:35:00 +08:00
    没公网就得自建
    Tink
        25
    Tink  
    PRO
       2023-11-30 00:32:52 +08:00 via iPhone
    最好是能直连,否则不建议用
    sunulin
        26
    sunulin  
       2023-11-30 05:36:23 +08:00 via iPhone
    国内基本没公网 ip 所以还是要找国内服务器自建 DERP ,默认的的确很慢的
    YGBlvcAK
        27
    YGBlvcAK  
       2023-11-30 07:38:35 +08:00 via Android
    可以试试 frp 的 xtcp ,打洞能力超强
    dltsgl
        28
    dltsgl  
       2023-11-30 09:50:49 +08:00
    同样的问题,自建 derp 连不上,放弃了
    LoNeZ
        29
    LoNeZ  
       2023-11-30 10:07:04 +08:00
    走 derp...可以不用 headscale...
    fortitudeZDY
        30
    fortitudeZDY  
       2023-11-30 10:19:35 +08:00 via Android
    厚脸皮推荐下俺的 tailscale 国内发行版,支持国内中转和微信认证,目前已经支持桌面和移动平台。xedge.cc
    TESTFLIGHT2021
        31
    TESTFLIGHT2021  
       2023-11-30 12:50:57 +08:00
    @fortitudeZDY 哥 经营 VPN 要证的。。。不怕进去么
    ZField
        32
    ZField  
       2023-11-30 15:12:50 +08:00
    @fortitudeZDY #30 vip 的带宽是共享的吗?网络问题只能走中转,我自建的 Derp 只有 5M 带宽,远程体验一般般……
    看了一下文档,还挺想试试的……
    gps949
        33
    gps949  
       2023-11-30 17:07:18 +08:00   1
    @fortitudeZDY

    那我也搭车宣传一下我的开源项目蜃境
    https://v2ex.com/t/965435#reply13
    fortitudeZDY
        34
    fortitudeZDY  
       2023-11-30 18:55:08 +08:00 via Android
    @TESTFLIGHT2021 合作方有国内证的,暂时没办理
    fortitudeZDY
        35
    fortitudeZDY  
       2023-11-30 18:57:43 +08:00 via Android
    @ZField 嗯,只能共享,不然成本抗不住
    DT27
        36
    DT27  
       2023-11-30 21:51:03 +08:00
    @fortitudeZDY 这就打不开了= =、
    james19820515
        37
    james19820515  
       2024-07-19 17:58:36 +08:00
    有结论了吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     921 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 20:09 PVG 04:09 LAX 12:09 JFK 15:09
    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