什么是 tailscale
Tailscale 是一个开源的 VPN 服务器,它允许用户使用自己的互联网连接来创建一个安全的、无备案的 VPN 网络。
direct vs relayed connection
直连和中继网络的区别,如果建立连接后不同终端间的网络延迟很大,可检查下是否使用了中继节点(relay),考虑使用direct connection优化延迟
经测试,relay模式延迟300ms左右情况下,改用direct模式延迟在10ms左右
1 2 3 4 5 6 7
| tailscale status
ping xxx
|
relayed connection可能的优化:
在某个节点的防火墙放开UDP协议的41641端口
都没有公网ip的节点间延迟优化
偶尔使用还是ssh方便
ssh端口转发
上一级提到过,有公网ip的服务器可以通过开启UDP协议的41641端口建立direct connection,减少节点间的网络延迟,
在两台设备都没有公网固定ip的情况下,尝试在同样开启端口没有效果,延迟仍然很大(300~1000ms)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| tailscale netcheck (base)
Report: * UDP: true * IPv4: yes, 27.38.xxx.xxxx:xxxx * IPv6: no, but OS has support * MappingVariesByDestIP: true * HairPinning: false * PortMapping: * Nearest DERP: San Francisco * DERP latency: - sfo: 175ms (San Francisco) - lax: 175.9ms (Los Angeles) - tok: 184.4ms (Tokyo) - dfw: 192.6ms (Dallas) - ord: 205.8ms (Chicago) - tor: 218.1ms (Toronto) - hkg: 220.6ms (Hong Kong) - hnl: 222ms (Honolulu) - nyc: 223.9ms (New York City) - fra: 231.7ms (Frankfurt) - sin: 238ms (Singapore) - waw: 249.2ms (Warsaw) - par: 254.3ms (Paris) - ams: 257.3ms (Amsterdam) - lhr: 265ms (London) - mad: 271.1ms (Madrid) - sao: 343ms (São Paulo) - dbi: 350.9ms (Dubai) - syd: 382.2ms (Sydney) - jnb: 420.1ms (Johannesburg) - nai: 464.5ms (Nairobi) - blr: (Bangalore) - sea: (Seattle) - den: (Denver) - mia: (Miami)
|
可以看到通过derp单程最短延迟在170ms+,roundtrip至少延迟300ms
此时如果有一个公网ip的节点,可以尝试将它作为中继节点,将其他节点连接到它上,这样其他节点的网络延迟就会变小
例如使用ssh的端口转发,a,b是没有固定公网ip的节点,c是公网ip的节点,c和a,c和b之间均可以建立direct connection,延迟很
小在10ms左右
通过ssh本地端口转发将本地请求通过c转发到b,这样a和b就可以直连了,参考这篇文章
自建DERP节点
参考
参考