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

自建 headscale 的一些问题

  •  
  •   her100 · 219 天前 · 1815 次点击
    这是一个创建于 219 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 电信千兆家宽,有公网 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 条回复    2023-09-28 09:50:42 +08:00
    superchijinpeng
        1
    superchijinpeng  
       219 天前
    Headscale 和你的延迟有什么关系?
    her100
        2
    her100  
    OP
       219 天前
    @superchijinpeng 延迟和什么有关?请指教
    DigitalG
        3
    DigitalG  
       219 天前
    之前做的时候,我记得,穿透成功的话,节点和节点能点对点链接,就只跟节点自己的上行速度有关了吧。如果穿透不成功,需要走 DERP 中继,这个时候跟中继节点的速度有关。
    her100
        4
    her100  
    OP
       219 天前
    @DigitalG DERP 中继我关掉了没开,穿透是成功的。可是如果是和设备的上行速度有关,为什么 L2TP 和 open vpn 的延迟会低一点。
    tms
        5
    tms  
       219 天前
    估计穿透没成功,自建 DERP 没开,会自动用公共 DERP ,同城我穿透成功基本都是个位数延迟。
    her100
        6
    her100  
    OP
       219 天前
    @tms 怎么看有没有穿透成功?或者怎么看是用的公共 DERP
    her100
        7
    her100  
    OP
       219 天前
    @tms 搜了一下,tailscale ping xx.xx.xx.xx ,使用这个命令能看是否打洞成功,延迟高的时候,确实是用了公共的 DERP
    her100
        8
    her100  
    OP
       219 天前
    @DigitalG 你说的是对的,是我之前的测试不对,我以为连接成功就是点对点了。现在测试出来,延迟高的时候是走了公共 DERP
    kuaizi
        9
    kuaizi  
       219 天前 via Android
    tailscale status 看看状态
    zyqv2
        10
    zyqv2  
       219 天前 via iPhone
    tailscale net check
    tms
        11
    tms  
       219 天前
    @her100 tailscale status 可以看是否直连,直连有 direct
    lgapple
        12
    lgapple  
       218 天前
    没有直连,我本来想建 headscale 的,后来直接用官方的就打洞成功了(前提是要开 ipv6 ),就没自己建 headscale 了
    her100
        13
    her100  
    OP
       217 天前
    @lgapple 是的,打洞成功之前都会优先连接 tailscale 的节点,我又自建了 DERP ,再禁用 tailscale 的节点,这样就能保证延迟降低了
    TossPig
        14
    TossPig  
       216 天前
    DERP 记得开认证,,,惨痛的教训/(ㄒoㄒ)/~~
    her100
        15
    her100  
    OP
       215 天前
    @TossPig 我想开,但我一直不成功。DERP 和 tailscale client 都是用 docker 建的,这两个都要连接到同一个 tailscaled.sock 我一直不会弄。
    TossPig
        16
    TossPig  
       214 天前
    两个容器共享目录`/run/tailscale`就可以了

    `tailscaled.sock`是客户端生成监听,DERP 去通信,不同版本的客户端生成路径可能不一致,我这是 debian 的环境
    her100
        17
    her100  
    OP
       213 天前
    @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
        18
    magicedy  
       212 天前
    @her100 直接用 headscale 自带的 derp 就好,把 derp.server.enabled 改为 true ,derp.server.urls 注释掉
    her100
        19
    her100  
    OP
       212 天前
    @magicedy 原来可以这样吗,那就不用再开一个 derp 的容器了?我之前还纳闷,derp.server.enabled 明明是 false 为什么还是用了 tailscale 的中继节点。这样怎么开客户端认证呢?
    magicedy
        20
    magicedy  
       212 天前
    我的理解是这个内嵌的 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 中转,内置的就足够了吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2912 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 14:33 · PVG 22:33 · LAX 07:33 · JFK 10:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.