关于我通过代理优化 Tailscale 连接速度的小妙招😋
前言
作者为了保证服务器的安全,贯彻落实"Zero-Trust"原则,长期使用 Tailscale 来连接自己服务器。
但是呢,Tailscale 存在一点小小的问题。Tailscale 的官方"Derp"看着很多很棒对不对。打洞成功走直连听起来很棒对不对?
⚠️ BUT:
当你的服务器在国外,并且没有优化线路的时候,你就会察觉到一丝不对劲——布什戈门,你这连接速度也太慢了吧。
直连后反而不如中继(虽然中继也挺垃圾的,官方的 Derp 也普遍绕路)。
这个时候,有的观众朋友就会说了:那你可以自建"Derp"来优化连接速度呀。
那还是避不开那个问题——如果他打洞成功了,不走中继怎么办,还不是一样绕路吗?
直连后 300ms 的延迟和中继 150ms 的延迟,你选谁?
「回答我!」「你回答我!」「Look in my eyes!」「Tell me, why? Why? Baby why?」「说话!」
并且自建"Derp"需要一台额外的服务器,最好还得是中国优化线路,不然效果依旧是一言难尽。
作者的三网优化机刚好在写文的这一晚到期,所以迫切地需要找其他方案来优化 SSH 的连接速度,不然那输一个命令卡几秒,谁受得了。
另外,请壁垒"破碎工坊云",毫无契约精神
作为作者玩服务器 Baby 阶段用过的商家,这一家搞过的骚操作在我印象中,包括但不限于:
- 无公告临时换 IP 导致机器失联
- 称机柜供电不足,降配机器(EPYC→E5)
- 使用期间数据不保
- 降配限速,美名"智能带宽策略调整"
- 大事故后,补偿使用时间,再找借口通知业务变更,机器全部清退😋
所以意外折腾下,想到之前写过一篇文章,可以在服务器上部署 Tailscale 后,当做代理节点访问。
俺寻思之力发动🌟——既然能直接访问服务器上的 Tailscale,那岂不是也能用来当跳板机?
正文
效果展示
为了吸引读者兴趣,对比一手前后速度。
连接的服务器是一台三网绕的香港服务器
优化前:
❯ time ssh -o BatchMode=yes hk-ser exit
ssh -o BatchMode=yes hk-ser exit 0.03s user 0.01s system 0% cpu 7.553 total
优化后:
❯ time ssh -o BatchMode=yes hk-ser exit
ssh -o BatchMode=yes hk-ser exit 0.02s user 0.01s system 5% cpu 0.630 total
速度对比:
| 项目 | 连接速度 |
|---|---|
| 优化前 | 7.553s |
| 优化后 | 0.630s |
前置要求
- 一个机场订阅(优化线路)
不对,你都有优化线路的服务器了,为什么不直接当跳板机呢 - 一台落地服务器(也就是出口)
- 了解什么是链式代理
- 一个爱折腾的心
思路
Before

tailscale-before
当你的服务器在国外,并且没有优化线路的时候,你就会察觉到一丝不对劲。布什戈门,你这连接速度也太慢了吧。
直连后反而不如中继(虽然直连也挺垃圾的)
Now

tailscale-now
既然机场一般有优化线路,那咱就可以利用下,用来加速😋
Xray 配置
这一部分请参考作者的另外一篇文章
代理软件配置
这里作者仅以自己目前使用的代理软件为例,进行测试举例。
此处默认读者已经了解如何自行添加代理节点,并创建对应的规则和分组
Surge
Surge 默认开放的 Socks5 端口为 6153
# > Tailscale
; PROCESS-NAME,tailscale,DIRECT
; PROCESS-NAME,tailscaled,DIRECT
AND,((DEST-PORT,22), (IP-CIDR,100.64.0.0/10,no-resolve)),Tailscale
; DOMAIN-SUFFIX,ts.net,Tailscale
; IP-CIDR,100.64.0.0/10,Tailscale
; IP-CIDR6,fd7a:115c:a1e0:ab12::/64,Tailscale
Mihomo
规则
Mihomo 默认开放的 Socks5 端口为 7890
# - PROCESS-NAME,tailscaled,DIRECT
- AND,((IP-CIDR,100.64.0.0/10,no-resolve), (DST-PORT, 22)), Tailscale
# - DOMAIN-SUFFIX,ts.net,Tailscale
# - IP-CIDR,100.64.0.0/10,Tailscale,no-resolve
# - IP-CIDR,fd7a:115c:a1e0::/48,Tailscale,no-resolve
链式代理
阅读 Mihomo Wiki关于
dialer-proxy的部分为自己手动配置的节点或组添加
dialer-proxy以
ss2022协议的配置示例:
这里就是通过[香港节点]链式代理到[test-node]的意思
- name: "test-node"
type: ss
server: blog.inmoe.org
port: 11451
cipher: 2022-blake3-aes-128-gcm
password: "16位passwd"
udp: true
udp-over-tcp: false
udp-over-tcp-version: 2
## 关键部分
dialer-proxy: 香港节点
终端配置
此处以默认自带的终端和 SSH 软件 Termius 举例。
SSH-Config
安装组件(二选一):
nmap(推荐)netcat-openbsd
调整
ssh-config,添加:ProxyCommand ncat --proxy 127.0.0.1:6153 --proxy-type socks5 %h %p参考示例:
Host hk-ser HostName 100.117.105.24 User root Port 22 IdentityFile ~/.ssh/id_ed25519 AddKeysToAgent yes ProxyCommand ncat --proxy 127.0.0.1:6153 --proxy-type socks5 %h %p
Termius
两图流启动:

配置示例

配置示例
小小问题
这样的规则可能误伤本地的 SSH 连接。其实可以分开配置SOCKS5,只有需要的服务器才配置代理此处有乌龙:最开始测试
AND规则的时候,发现总是匹配不到。写完一版后,测试的时候发现——诶,我CIDR怎么写错了,100.64→10.64,me → 🤡代理软件和 Tailscale 没配置好会打架
加油孩子,问问 ChatGPT、Gemini、Claude 老师,或者看我 Xray 那篇文章。
这安全吗?
我也不确定这样到底是不是安全的,落地机得保护好。或者说 Tailscale 的 ACL 规则要配置好。但是实打实快了对吧 😋
结语
以上操作纯属作者瞎折腾呀,如果读者宝贝们有更好的方案, 或者相关的疑问,欢迎指出💗!!