本来是想用 L2TP/IPsec 的方式,和朋友联机玩局域网游戏,但是朋友上网一般是在网吧,网吧的电脑连接不上 L2TP/IPsec ,所以想自建 headscale 试试看,可是 headscale 的延迟为什么这么高?
![]() | 1 superchijinpeng 2023-09-21 09:58:56 +08:00 Headscale 和你的延迟有什么关系? |
![]() | 2 her100 OP @superchijinpeng 延迟和什么有关?请指教 |
![]() | 3 DigitalG 2023-09-21 10:10:54 +08:00 之前做的时候,我记得,穿透成功的话,节点和节点能点对点链接,就只跟节点自己的上行速度有关了吧。如果穿透不成功,需要走 DERP 中继,这个时候跟中继节点的速度有关。 |
![]() | 4 her100 OP @DigitalG DERP 中继我关掉了没开,穿透是成功的。可是如果是和设备的上行速度有关,为什么 L2TP 和 open vpn 的延迟会低一点。 |
![]() | 5 tms 2023-09-21 10:39:10 +08:00 估计穿透没成功,自建 DERP 没开,会自动用公共 DERP ,同城我穿透成功基本都是个位数延迟。 |
![]() | 7 her100 OP @tms 搜了一下,tailscale ping xx.xx.xx.xx ,使用这个命令能看是否打洞成功,延迟高的时候,确实是用了公共的 DERP |
![]() | 8 her100 OP @DigitalG 你说的是对的,是我之前的测试不对,我以为连接成功就是点对点了。现在测试出来,延迟高的时候是走了公共 DERP |
9 kuaizi 2023-09-21 11:17:57 +08:00 via Android tailscale status 看看状态 |
![]() | 10 zyqv2 2023-09-21 11:18:53 +08:00 via iPhone tailscale net check |
12 lgapple 2023-09-22 14:45:01 +08:00 没有直连,我本来想建 headscale 的,后来直接用官方的就打洞成功了(前提是要开 ipv6 ),就没自己建 headscale 了 |
![]() | 13 her100 OP @lgapple 是的,打洞成功之前都会优先连接 tailscale 的节点,我又自建了 DERP ,再禁用 tailscale 的节点,这样就能保证延迟降低了 |
![]() | 14 TossPig 2023-09-24 03:56:19 +08:00 DERP 记得开认证,,,惨痛的教训/(ㄒoㄒ)/~~ |
![]() | 15 her100 OP @TossPig 我想开,但我一直不成功。DERP 和 tailscale client 都是用 docker 建的,这两个都要连接到同一个 tailscaled.sock 我一直不会弄。 |
![]() | 16 TossPig 2023-09-26 16:10:50 +08:00 两个容器共享目录`/run/tailscale`就可以了 `tailscaled.sock`是客户端生成监听,DERP 去通信,不同版本的客户端生成路径可能不一致,我这是 debian 的环境 |
![]() | 17 her100 OP @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" |
![]() | 18 magicedy 2023-09-28 06:43:48 +08:00 @her100 直接用 headscale 自带的 derp 就好,把 derp.server.enabled 改为 true ,derp.server.urls 注释掉 |
![]() | 19 her100 OP @magicedy 原来可以这样吗,那就不用再开一个 derp 的容器了?我之前还纳闷,derp.server.enabled 明明是 false 为什么还是用了 tailscale 的中继节点。这样怎么开客户端认证呢? |
![]() | 20 magicedy 2023-09-28 09:50:42 +08:00 我的理解是这个内嵌的 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 中转,内置的就足够了吧 |