相信很多人测速都遇到过这种情况:
- 美西机器:优化了VPS的BBR和FQ, 多线程⏬650M,单线程⏬200M
- 无论让AI怎么优化VPS的BBR,单线程都没办法提高上去
✅其实问题不在VPS,而在于你的测速电脑本地端;你可以尝试优化本地端的缓存,就能让你的单线程提上去
macOS 千兆线路 TCP 单线程调优
调优效果
在高延迟千兆线路下,美西单线程速度由约 200 Mbps 提升到 600–700 Mbps。
主要有效调整是将 kern.ipc.maxsockbuf 从 8 MiB 提高到16 MiB。
临时应用
打开终端执行:
sudo sysctl -w kern.ipc.maxsockbuf=16777216
sudo sysctl -w net.inet.tcp.sendspace=262144
sudo sysctl -w net.inet.tcp.recvspace=262144
sudo sysctl -w net.inet.tcp.autorcvbufmax=33554432
sudo sysctl -w net.inet.tcp.autosndbufmax=33554432
sudo sysctl -w net.inet.tcp.autosndbufinc=65536
查看当前参数
sysctl \
kern.ipc.maxsockbuf \
net.inet.tcp.sendspace \
net.inet.tcp.recvspace \
net.inet.tcp.autorcvbufmax \
net.inet.tcp.autosndbufmax \
net.inet.tcp.autosndbufinc
预期结果:
kern.ipc.maxsockbuf: 16777216
net.inet.tcp.sendspace: 262144
net.inet.tcp.recvspace: 262144
net.inet.tcp.autorcvbufmax: 33554432
net.inet.tcp.autosndbufmax: 33554432
net.inet.tcp.autosndbufinc: 65536
持久化配置
sysctl -w 重启后会失效。可以使用系统级 LaunchDaemon 开机自动应用:
sudo tee /Library/LaunchDaemons/com.local.tcp-tuning.plist >/dev/null <<'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.local.tcp-tuning</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/sysctl</string>
<string>-w</string>
<string>kern.ipc.maxsockbuf=16777216</string>
<string>net.inet.tcp.sendspace=262144</string>
<string>net.inet.tcp.recvspace=262144</string>
<string>net.inet.tcp.autorcvbufmax=33554432</string>
<string>net.inet.tcp.autosndbufmax=33554432</string>
<string>net.inet.tcp.autosndbufinc=65536</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
sudo chown root:wheel /Library/LaunchDaemons/com.local.tcp-tuning.plist
sudo chmod 644 /Library/LaunchDaemons/com.local.tcp-tuning.plist
sudo launchctl bootout system/com.local.tcp-tuning 2>/dev/null || true
sudo launchctl bootstrap system /Library/LaunchDaemons/com.local.tcp-tuning.plist
注意事项
- 部分 Mac 将
kern.ipc.maxsockbuf设置到 20 MiB 以上会提示Result too large,此时保持16 MiB。 - 实际效果与 RTT、丢包、线路质量、服务器配置和 macOS 版本有关。
- 建议使用相同节点和工具,在修改前后分别测试至少三次。
- 参数越大不代表速度一定越快,也不会突破宽带或服务器限速。
Windows 10/11 千兆线路 TCP 设置
Windows 不能使用 macOS 的 kern.ipc.maxsockbuf 等参数。Windows 会自动调整 TCP 接收窗口,通常不需要手动指定缓冲区大小。
查看当前配置
以管理员身份打开 PowerShell,执行:
netsh interface tcp show global
也可以查看 TCP 配置模板:
Get-NetTCPSetting |
Select-Object SettingName, AutoTuningLevelLocal, CongestionProvider
推荐设置
启用正常级别的接收窗口自动调节:
netsh interface tcp set global autotuninglevel=normal
启用 RSS,让多核 CPU 分担网络处理:
netsh interface tcp set global rss=enabled
执行完成后重新启动电脑。
这些设置通常会自动持久化,重启后仍然有效。
重启后检查
netsh interface tcp show global
重点确认:
Receive Window Auto-Tuning Level : normal
Receive-Side Scaling State : enabled
不同语言版本的 Windows 显示文字可能不同。
注意事项
- Windows 没有与
kern.ipc.maxsockbuf完全对应的参数。 autotuninglevel=normal主要是确保自动调节功能没有被关闭,并不保证一定提速。- 不建议随意使用来源不明的注册表 TCP 优化脚本。
- 不建议关闭自动调节、时间戳或网卡卸载功能来追求跑分。
- WSL 中执行
sysctl只影响 WSL 内部的 Linux,不会调整 Windows 网络栈。 - 实际速度仍受 RTT、丢包、代理软件、网卡、路由器和服务器线路影响。
- 建议修改前后使用相同服务器和工具分别测试至少三次。
试试
有手机端的么- -感觉手机端永远都跑不到pc端那种速度
@NixzOky #2
手机端修改系统比较麻烦,如果有工具,应该也可以调优的
@Ethan728 #3 手机端ios不好弄,但是安卓root应该和linux差不多吧,我始终想不明白的一点就在于,单线程手机永远都比电脑少100-200mbps,性能应该是够的啊,难道是wifi的问题么
@NixzOky #4
手机端网速
抱歉,我无法满足这个需求。
windows端rss是默认开启还是关闭的