her100

自建 headscale 的一些问题

  •  
  •   her100 · Sep 21, 2023 · 4580 views
    This topic created in 1139 days ago, the information mentioned may be changed or developed.
    • 电信千兆家宽,有公网 IP
    • 在群晖 nas 中搭建了三种 VPN:L2TP/IPsec ; open vpn ; headscale
    1. L2TP/IPsec:公司电脑 ping nas ,延迟在 10ms 以内
    2. open vpn:手机连接公司 wifi ping nas ,延迟在 30ms 以内
    3. headscale:公司电脑 ping nas ,延迟在 200ms 左右
    4. headscale:公司电脑 ping 手机,延迟在 400-500ms 左右

    本来是想用 L2TP/IPsec 的方式,和朋友联机玩局域网游戏,但是朋友上网一般是在网吧,网吧的电脑连接不上 L2TP/IPsec ,所以想自建 headscale 试试看,可是 headscale 的延迟为什么这么高?

    20 replies  •  2023-09-28 09:50:42 +08:00
    cutiechi
    cutiechi
    Sep 21, 2023
    1
    Headscale 和你的延迟有什么关系?
    her100
    her100
    OP
    Sep 21, 2023
    2
    @superchijinpeng 延迟和什么有关?请指教
    DigitalG
    DigitalG
    Sep 21, 2023
    3
    之前做的时候,我记得,穿透成功的话,节点和节点能点对点链接,就只跟节点自己的上行速度有关了吧。如果穿透不成功,需要走 DERP 中继,这个时候跟中继节点的速度有关。
    her100
    her100
    OP
    Sep 21, 2023
    4
    @DigitalG DERP 中继我关掉了没开,穿透是成功的。可是如果是和设备的上行速度有关,为什么 L2TP 和 open vpn 的延迟会低一点。
    tms
    tms
    Sep 21, 2023
    5
    估计穿透没成功,自建 DERP 没开,会自动用公共 DERP ,同城我穿透成功基本都是个位数延迟。
    her100
    her100
    OP
    Sep 21, 2023
    6
    @tms 怎么看有没有穿透成功?或者怎么看是用的公共 DERP
    her100
    her100
    OP
    Sep 21, 2023
    7
    @tms 搜了一下,tailscale ping xx.xx.xx.xx ,使用这个命令能看是否打洞成功,延迟高的时候,确实是用了公共的 DERP
    her100
    her100
    OP
    Sep 21, 2023
    8
    @DigitalG 你说的是对的,是我之前的测试不对,我以为连接成功就是点对点了。现在测试出来,延迟高的时候是走了公共 DERP
    kuaizi
    kuaizi
    Sep 21, 2023 via Android
    9
    tailscale status 看看状态
    zyqv2
    zyqv2
    Sep 21, 2023 via iPhone
    10
    tailscale net check
    tms
    tms
    Sep 21, 2023
    11
    @her100 tailscale status 可以看是否直连,直连有 direct
    lgapple
    lgapple
    Sep 22, 2023
    12
    没有直连,我本来想建 headscale 的,后来直接用官方的就打洞成功了(前提是要开 ipv6 ),就没自己建 headscale 了
    her100
    her100
    OP
    Sep 23, 2023
    13
    @lgapple 是的,打洞成功之前都会优先连接 tailscale 的节点,我又自建了 DERP ,再禁用 tailscale 的节点,这样就能保证延迟降低了
    TossPig
    TossPig
    Sep 24, 2023
    14
    DERP 记得开认证,,,惨痛的教训/(ㄒoㄒ)/~~
    her100
    her100
    OP
    Sep 25, 2023
    15
    @TossPig 我想开,但我一直不成功。DERP 和 tailscale client 都是用 docker 建的,这两个都要连接到同一个 tailscaled.sock 我一直不会弄。
    TossPig
    TossPig
    Sep 26, 2023
    16
    两个容器共享目录`/run/tailscale`就可以了

    `tailscaled.sock`是客户端生成监听,DERP 去通信,不同版本的客户端生成路径可能不一致,我这是 debian 的环境
    her100
    her100
    OP
    Sep 27, 2023
    17
    @TossPig docker tailscale client 的 tailscaled.sock 挂载到宿主机上失败,提示 tailscaled.sock 已存在。

    version: '2.9'
    services:
    tailscaled:
    container_name: client
    image: tailscale/tailscale
    network_mode: host
    privileged: true
    cap_add:
    - net_admin
    - sys_module
    volumes:
    - '/volume1/docker/headscale/client:/var/lib'
    - '/dev/net/tun:/dev/net/tun'
    - '/var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock'
    command: sh -c "mkdir -p /var/run/tailscale && ln -s /tmp/tailscaled.sock /var/run/tailscale/tailscaled.sock && tailscaled"
    magicedy
    magicedy
    Sep 28, 2023
    18
    @her100 直接用 headscale 自带的 derp 就好,把 derp.server.enabled 改为 true ,derp.server.urls 注释掉
    her100
    her100
    OP
    Sep 28, 2023
    19
    @magicedy 原来可以这样吗,那就不用再开一个 derp 的容器了?我之前还纳闷,derp.server.enabled 明明是 false 为什么还是用了 tailscale 的中继节点。这样怎么开客户端认证呢?
    magicedy
    magicedy
    Sep 28, 2023
    20
    我的理解是这个内嵌的 derp 也没有另外开放端口,不会被白嫖,也就不用加认证了把,都是容器内部的。derp.server.urls 注释掉后,就只剩内嵌这个了,不能直连就都走这个内嵌的 derp 中转了。
    headscale 0.15.0 (2022-03-20) https://github.com/juanfont/headscale/releases/tag/v0.15.0 就已经加了内嵌的 derp ,不知道为啥网上大部分说 derp 的教程都是另外再搭一个,如果只是为了不能直连的时候不走境外 derp 中转,内置的就足够了吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5052 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 07:54 · PVG 15:54 · LAX 23:54 · JFK 02:54
    ♥ Do have faith in what you're doing.