TCP 迷之调参

输入网络条件,生成适配 BBR 的 Linux 内核网络参数

TCP 参数配置

输入您的网络参数,获取优化后的内核配置

高效模式:适合视频流媒体和在线游戏
时间
速度
爬升阶段
稳定带宽
快速爬升 - 适合视频流和在线游戏
优先提高带宽利用率,略微牺牲初期稳定性
本曲线仅用做展示曲率效果,不代表实际爬升曲线,仅作参考

V5 · 自适应调优(默认)

✓缓冲区按内存自动封顶
✓自适应爬升曲线
✓低延迟与高延迟分别建模
✓上下行带宽不对称处理
✓输入参数边界保护
✓可选激进带宽模式
赞助商
Sharon.io

怎么用

  1. 第 1 步

    填写网络条件

    本地带宽与服务器带宽取两端中较小的上限;延迟用本地到服务器的 ping 往返时间;内存选择服务器实际内存。

  2. 第 2 步

    选择爬升曲线

    数值越高,连接建立后越快吃满带宽,适合视频与下载;数值越低越保守,更适合对抖动敏感的场景。

  3. 第 3 步

    生成并应用

    点击“生成配置”得到 sysctl 参数,可直接复制,或使用一键命令:先备份 /etc/sysctl.conf,再写入并执行 sysctl -p。

示例输出

条件:本地与服务器带宽均为 1000 Mbps,延迟 100 ms,内存 1 GB,BBR + cake,V5 默认曲线。

kernel.pid_max = 65535
kernel.panic = 1
kernel.sysrq = 1
kernel.core_pattern = core_%e
kernel.printk = 3 4 1 3
kernel.numa_balancing = 0
kernel.sched_autogroup_enabled = 0

vm.swappiness = 10
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
vm.panic_on_oom = 1
vm.overcommit_memory = 1
vm.min_free_kbytes = 90214

net.core.default_qdisc = cake
net.core.netdev_max_backlog = 2000
net.core.rmem_max = 15532032
net.core.wmem_max = 15532032
net.core.rmem_default = 87380
net.core.wmem_default = 65536
net.core.somaxconn = 889
net.core.optmem_max = 65536

net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_max_tw_buckets = 32768
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 0

net.ipv4.tcp_rmem = 8192 87380 15532032
net.ipv4.tcp_wmem = 8192 65536 15532032
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_notsent_lowat = 4096
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_adv_win_scale = 4
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_no_metrics_save = 0

net.ipv4.tcp_max_syn_backlog = 3556
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_stdurg = 0
net.ipv4.tcp_rfc1337 = 0
net.ipv4.tcp_syncookies = 1

net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.route.gc_timeout = 100
net.ipv4.neigh.default.gc_stale_time = 120
net.ipv4.neigh.default.gc_thresh3 = 8192
net.ipv4.neigh.default.gc_thresh2 = 4096
net.ipv4.neigh.default.gc_thresh1 = 1024

net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1

常见问题

生成的配置会做哪些修改?
主要调整 TCP 读写缓冲区(tcp_rmem / tcp_wmem、rmem_max / wmem_max)、拥塞控制算法(BBR 或 CUBIC)、默认队列规则(fq、cake 或 fq_pie)以及相关的连接与内存参数。缓冲区按带宽时延积(BDP)和内存上限计算。
需要什么内核版本?
BBR 需要 Linux 4.9 及以上内核;cake 队列需要 4.19 及以上。应用前可用 sysctl net.ipv4.tcp_available_congestion_control 确认内核支持的算法。
配置出问题怎么恢复?
一键命令会把原有 /etc/sysctl.conf 备份为带时间戳的 sysctl.conf.bk_* 文件。把备份复制回 /etc/sysctl.conf 后执行 sysctl -p 即可恢复。
不同版本(V1–V5)有什么区别?
V5 是当前默认版本,会根据内存大小限制缓冲区,并按爬升曲线调整加速行为;早期版本保留给需要复现旧配置的用户。
会收集我的服务器信息吗?
不会。所有计算都在浏览器本地完成,输入的数据不会上传到服务器。