1. 9 种常见卡顿原因
根据 4 年中处理过的 2,300+ 个开发者工单,SSH / Git 卡顿的根因通常集中在以下 9 类。按概率排序:
- DNS 解析慢:链路内的递归 DNS 不稳定,首次连接 6 秒白屏。
- TCP 重传高:跨海段 MTU 不匹配,中等包 (1400 字节) 被拆分重传。
- Git LFS 大对象:每个大文件单独 HTTP,HTTP1.1 串行下载。
- 本地 NAT 老化:家用路由器把空闲连接回收,SSH 长连接被掐死。
- 密钥协商阻塞:某些代理不支持 SSH RSA-sha1,被迫降级到慢协议。
- IPv6 路径破损:网络栈对 IPv6 半合半开,初次握手慢。
- VSCode Remote 反向隧道:随机端口被家用网关挡住。
- IDE re-index:远程文件系统抖动导致 IDE 频繁重新索引。
- 本地 CPU 满载:代理加密占用高,IDE 卡顿被误判为网络。
技巧:用 QuickQ 客户端 → 「链路探针 → 协议优先级」就能一键测出当前链路是哪条有问题,不用抓包。
2. TCP/UDP MTU 调整
出海链路里最重要的一个参数是 MTU。Linux 默认 1500,部分运营商在跨境段只允许 1400。请按以下步骤调整:
- 在本地终端运行:
ping -s 1400 -M do github.com测一下不分片的最大 ping 包。 - 如果不通,降到 1300,逐档试到能通。
- macOS / Linux 调整:
sudo ifconfig en0 mtu 1400(en0 替换为实际网卡)。 - Windows:
netsh interface ipv4 set subinterface "以太网" mtu=1400 store=persistent。
QuickQ 客户端默认会自动按链路调整 MSS(TCP 最大段大小),无需用户手动改。
3. QuickQ 专属代理通道
QuickQ v4.0 内置「开发者模式」,开启后会自动监听本地 4123 (HTTP) 和 4124 (SOCKS5) 端口。开发者只需一次配置就可以把所有流量走 QuickQ:
- 客户端 → 设置 → 高级 → 开发者模式 → 打开「TUN 模式 + SOCKS5 监听」。
- 客户端生成一份专属的「开发者配置」粘贴版。
- 照下面贴到
~/.ssh/config或系统代理设置里。
图 3.1 · 开发者模式面板
4. SSH ~/.ssh/config 配置
一份最小可工作的 SSH 配置:
Host github.com
ProxyCommand nc -X 5 -x 127.0.0.1:4124 %h %p
ServerAliveInterval 30
TCPKeepAlive yes
IPQoS lowdelay throughput
Host gitlab.com
ProxyCommand nc -X 5 -x 127.0.0.1:4124 %h %p
ServerAliveInterval 30
Host *
PasswordAuthentication no
IdentitiesOnly yes
macOS 用户需先安装 brew install netcat。Windows 可以使用 ncat(nmap 套件)。
5. Git push 大文件
Git LFS push 一段时间经常断流的解决:在仓库目录下新建 .gitconfig:
[http]
postBuffer = 524288000
lowSpeedLimit = 1000
lowSpeedTime = 30
[https]
postBuffer = 524288000
[lfs]
transfer = ssh
QuickQ 客户端在检测到 Git LFS 时会自动启用「走专线通道」,把 HTTP/HTTPS 流量切到第二个 socket,避免被 SSH 通道挤压。
6. IDE 远程调试
VSCode Remote 与 JetBrains Gateway 都依赖 SSH 反向隧道。在家用网络下,经常因为运营商屏蔽高位随机端口而连不上。两种方法:
- 改 SSH 端口:服务器改用
Port 2222这种非标准端口,运营商通常不屏蔽。 - 用 QuickQ 中转:开发机 → QuickQ → 服务器。QuickQ 默认监听 4123/4124,运营商不会屏蔽这两个口。
VSCode 配置参考:
{
"remote.SSH.configFile": "~/.ssh/config",
"remote.SSH.useLocalServer": true,
"remote.SSH.connectTimeout": 30
}
图 6.1 · JetBrains Gateway 走 QuickQ 的实测延迟
实测环境:macOS 14 + VSCode 1.95 + GitHub Enterprise 3.13。如果你的环境与本文差异较大,参数可能需要微调。
