全新 V6BBR + fq · Linux 4.9+
TCP 迷之调参 V6
V6 按你的线路逐项计算 Linux 内核参数:先看清能快多少、卡在哪里,再一键应用
- 1% 丢包的跨洋线路
- ×6
- 180 ms 时只开 BBR 单连接 59 Mbps,V6 跑到 366 Mbps
- 近乎无丢包的高延迟线路
- +96%
- 100 ms 优化线路上,只开 BBR 约 230 Mbps,V6 约 450 Mbps
- 只改 9 个参数
- 9
- 写入独立的 sysctl.d 文件,先备份,一条命令回滚
500 Mbps 线路,单连接下载,V6 与只开 BBR 实测对比 · 看各方案对比
网络拓扑
按数据经过的路径,从你的电脑开始逐格填写
你的电脑
下载数据的一端
Windows、macOS、Linux 6.16+
线路
你的电脑 ↔ 服务器
内核默认 7.1 Mbps
服务器
要调参的 VPS
收益预览
单线程(单连接)下载速度的估算,随上方输入实时变化;多线程对照见下方
内核默认 · 单线程
7.1Mbps
卡在线路的丢包与延迟
只开 BBR · 单线程
92Mbps
卡在服务器的发送缓冲
应用 V6 后 · 单线程
807Mbps
卡在线路的丢包与延迟
比只开 BBR
×8.8
比内核默认 ×114
横轴改变丢包率或延迟,纵轴为单连接速度(Mbps);点击图上任意位置可直接套用
剩下的限制来自线路的丢包与延迟,V6 已把它的影响压到很小;换一条更干净的线路收益最大。
流媒体体验
单连接速度 ÷ 平台推荐码率
| 内核默认 | 只开 BBR | V6 | |
|---|---|---|---|
| YouTube 1080p5 Mbps | |||
| YouTube 1080p5 Mbps | 勉强 | 秒开 | 秒开 |
| YouTube 4K20 Mbps | |||
| YouTube 4K20 Mbps | 卡顿 | 秒开 | 秒开 |
| YouTube 8K80 Mbps | |||
| YouTube 8K80 Mbps | 卡顿 | 勉强 | 秒开 |
| Netflix 4K15 Mbps | |||
| Netflix 4K15 Mbps | 卡顿 | 秒开 | 秒开 |
| Disney+ 4K25 Mbps | |||
| Disney+ 4K25 Mbps | 卡顿 | 流畅 | 秒开 |
| Prime Video 4K15 Mbps | |||
| Prime Video 4K15 Mbps | 卡顿 | 秒开 | 秒开 |
| Twitch 1080p60 直播8 Mbps | |||
| Twitch 1080p60 直播8 Mbps | 卡顿 | 秒开 | 秒开 |
AI 服务体验预测
按上方填写的延迟与丢包估算
| 内核默认 | 只开 BBR | V6 | |
|---|---|---|---|
| 生成图片与文件下载约 5 MB · 单线程 | |||
| 生成图片与文件下载约 5 MB · 单线程 | 勉强约 6 秒 | 秒开不到 1 秒 | 秒开不到 1 秒 |
| Ollama 拉取 7B 模型约 4.7 GB · 单线程 | |||
| Ollama 拉取 7B 模型约 4.7 GB · 单线程 | 卡顿约 88 分钟 | 流畅约 7 分钟 | 秒开约 47 秒 |
| Hugging Face 下载 8B 权重约 16 GB · 单线程 | |||
| Hugging Face 下载 8B 权重约 16 GB · 单线程 | 卡顿约 5.0 小时 | 流畅约 23 分钟 | 秒开约 3 分钟 |
| ChatGPT · Claude · Gemini 对话流式输出逐字到达 | |||
| ChatGPT · Claude · Gemini 对话流式输出逐字到达 | 流畅往返 150 ms · 丢包 0.1% · 主要看线路,调参影响小 | ||
| Cursor · Copilot 代码补全每次按键都要往返一次 | |||
| Cursor · Copilot 代码补全每次按键都要往返一次 | 流畅往返 150 ms · 丢包 0.1% · 主要看线路,调参影响小 | ||
| ChatGPT 实时语音对话节奏对延迟最敏感 | |||
| ChatGPT 实时语音对话节奏对延迟最敏感 | 流畅往返 150 ms · 丢包 0.1% · 主要看线路,调参影响小 | ||
秒开流畅勉强卡顿· 按单连接估算;播放器与下载工具常开多条连接,实际体验通常更好
多线程下载(8 连接)500 Mbps 带宽、180 ms 延迟下的实测速度(单位 Mbps),与上方输入无关
| 丢包 | 内核默认 | 只开 BBR | V6 | |
|---|---|---|---|---|
| 0 | 单线程 | 135 | 127 | 419 |
| 8 连接合计 | 451 | 428 | 429 | |
| 1% | 单线程 | 1.5 | 59 | 366 |
| 8 连接合计 | 9.5 | 406 | 424 |
不丢包时,多条连接一起就能跑满带宽,调不调参差别不大;V6 单线程已接近多线程水平。有丢包时内核默认开多线程也跑不起来;只开 BBR 靠多线程能接近跑满,单线程却只有几十 Mbps;V6 单线程、多线程都能保持在数百 Mbps。单文件下载、流媒体、代理转发多是单连接,以上方单线程为准;测速网站多用多线程,数字会比单线程高。
以上数值均为理论推算,不同网络环境与机器性能下实际效果会有波动。若运营商或商家本身限速(例如标称 1 Gbps 实际被限到 500 Mbps),实测仍可能明显低于推算。推算基于主线内核自带的 BBRv1;若服务器用的是 BBRv2/v3(如 XanMod 等第三方内核),线路丢包超过约 2% 时它会主动降速,实测可能明显偏低。一键命令会检测并提示,但不会替你更换算法或内核。建议应用前后各测几次速对比。
旧版本(V1–V5)需要复现以前的配置时展开
自适应爬升,可选激进模式
高效:适合视频流媒体和在线游戏
Compare
V6 与常见调参方案
同一条 500 Mbps 线路、同一台机器,只换调参方案时的单连接下载速度(Debian 12 / 13 两个内核实测取中位数)。线路越远、丢包越多,V6 与只开 BBR 的差距越大;你的网络与机器上的结果可能有差异。
V6 相比只开 BBR ×6.2;内核默认只有 1.5 Mbps
内核默认
CUBIC + fq_codel,系统出厂设置
只开 BBR
BBR + fq,缓冲保持默认:多数一键 BBR 脚本的做法
V6
当前版本
线路越远、丢包越多,差距越大
180 ms内核默认1.5 Mbps只开 BBR59 MbpsV6366 Mbps
横轴:往返延迟(ms);纵轴:单连接速度(Mbps)
How it works
三步完成调优
- 1
填写网络条件
选择直连或中转。中转时按数据经过的路径逐格填写:你的电脑、第一跳、中转机、第二跳、落地机;每一跳的延迟在它的起点上 ping 终点测得。
- 2
看收益与瓶颈
收益预览实时画出内核默认、只开 BBR 与 V6 的速度曲线,并标出速度卡在哪一环:服务器内存、线路、带宽,还是你的电脑。
- 3
应用或回滚
一键命令把配置写入 /etc/sysctl.d/99-omnitt-tcp.conf,先备份将被修改的值,并检查内核是否支持 BBR;页面同时给出回滚命令。
Example
示例输出
条件:本地与服务器带宽均为 1000 Mbps,延迟 100 ms,内存 1 GB,V6 默认设置。
# TCP 迷之调参 V6 · https://omnitt.com/ # 公平队列,为 BBR 提供发包节奏(pacing)net.core.default_qdisc = fq# BBR:不把丢包当作拥塞,有丢包的线路上仍保持高速net.ipv4.tcp_congestion_control = bbr# 发送缓冲上限:随带宽与延迟连续变化,按内存预算封顶net.ipv4.tcp_wmem = 4096 16384 46305116# 接收缓冲上限:随带宽与延迟连续变化,按内存预算封顶net.ipv4.tcp_rmem = 4096 131072 46305116# 让显式设置 SO_SNDBUF 的程序也能用到同样的上限net.core.wmem_max = 46305116# 让显式设置 SO_RCVBUF 的程序也能用到同样的上限net.core.rmem_max = 46305116# 限制未发送数据堆积,降低应用层延迟net.ipv4.tcp_notsent_lowat = 131072# 仅在检测到 ICMP 黑洞时启用 MTU 探测net.ipv4.tcp_mtu_probing = 1# 长连接空闲后不重置拥塞窗口net.ipv4.tcp_slow_start_after_idle = 0FAQ
常见问题
V6 能快多少?
和只开 BBR(多数一键脚本的做法)相比,线路越远、丢包越多,差距越大。500 Mbps 线路、1% 丢包时:30 ms 近距离只开 BBR 约 355 Mbps,V6 约 460 Mbps(+30%);180 ms 跨洋分别约 59 与 366 Mbps(约 6 倍);400 ms 远程分别约 22 与 220 Mbps。内核默认(CUBIC)在 1% 丢包下单连接只有个位数,远程线路上不到 1 Mbps。低延迟、无丢包时三者都接近跑满带宽。页面上的收益预览会按你的条件估算。
为什么调完速度还是上不去?
单连接速度取决于链路上最窄的一环。常见的有三种:服务器内存太小,撑不起足够大的发送缓冲;你的电脑接收窗口太小(Linux 6.15 及以前默认 6MB),在高延迟下只能收一两百 Mbps;或者线路本身丢包严重。收益预览会标出“最大瓶颈”并给出解法,例如提高内存档位或改用多线程下载。
生成的配置会做哪些修改?
V6 只改 9 个参数:拥塞控制(BBR)、队列规则(fq)、TCP 读写缓冲上限(tcp_rmem / tcp_wmem、rmem_max / wmem_max)、tcp_notsent_lowat、tcp_mtu_probing 与 tcp_slow_start_after_idle。缓冲上限随带宽和延迟连续变化,按内存预算封顶,且不低于内核默认值。不修改 kernel.*、vm.*、转发与 rp_filter,不影响 Docker、WireGuard 或 NAT。
和一键开启 BBR 的脚本有什么区别?
多数一键脚本只把拥塞控制换成 BBR、队列换成 fq,TCP 缓冲仍是内核默认值。延迟高或有丢包时,默认缓冲会先成为瓶颈:500 Mbps 线路、180 ms、1% 丢包时,只开 BBR 的单连接约 59 Mbps,V6 约 366 Mbps。V6 在 BBR + fq 之外,还按带宽、延迟与内存放大缓冲上限。页面下方有各方案在不同延迟与丢包下的对比。
需要什么内核版本?
BBR 需要 Linux 4.9 及以上内核。一键命令会先检查内核是否支持 BBR,不支持时不做任何修改。页面推算基于主线内核自带的 BBRv1(Debian、Ubuntu 等发行版内核均是 v1)。部分第三方内核(如 XanMod)带的是 BBRv2/v3:它们在一轮往返内丢包率超过约 2% 时会主动收缩发送量,以换取与其他连接的公平,因此在高丢包线路上实测可能明显低于推算。已在用 BBRv2/v3 时,一键命令保留原算法、不更换内核,只在执行结束时给出提醒。
应用后需要重启吗?
不需要重启服务器。缓冲上限立即生效,已有连接也会用上(程序自己固定了缓冲大小的除外);新建的连接立即改用 BBR。只有应用之前已经建立的连接会沿用原来的拥塞控制,直到断开重连。中转机与落地机之间的隧道(WebSocket、gRPC、多路复用等)常是长连接,应用后重启一次代理服务即可。一键命令执行完会显示当前的拥塞控制、队列规则,以及仍在用原算法的连接数。
配置出问题怎么恢复?
一键命令在应用前把将被修改的参数当前值保存到 /etc/sysctl.d/omnitt-tcp.backup。执行页面上的回滚命令即可删除新配置、恢复原值并重新挂载队列规则。
不同版本(V1–V6)有什么区别?
V6 是当前默认版本:参数最少,缓冲随带宽和延迟连续变化,有丢包时在各种延迟下都不低于 V5。早期版本保留给需要复现旧配置的用户。
会收集我的服务器信息吗?
不会。计算在我们的服务器上完成,提交的只有带宽、延迟、内存这类数字,不含 IP 或主机名;它们只用于生成本次结果,不记录、不存储。使用“在线实测”时,服务器地址由你的浏览器直接发给 Globalping(jsDelivr 运营的开放测量网络),不经过本站。