TCP 迷之调参
输入网络条件,生成适配 BBR 的 Linux 内核网络参数
TCP 参数配置
输入您的网络参数,获取优化后的内核配置
怎么用
第 1 步
填写网络条件
本地带宽与服务器带宽取两端中较小的上限;延迟用本地到服务器的 ping 往返时间;内存选择服务器实际内存。
第 2 步
选择爬升曲线
数值越高,连接建立后越快吃满带宽,适合视频与下载;数值越低越保守,更适合对抖动敏感的场景。
第 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 是当前默认版本,会根据内存大小限制缓冲区,并按爬升曲线调整加速行为;早期版本保留给需要复现旧配置的用户。
- 会收集我的服务器信息吗?
- 不会。所有计算都在浏览器本地完成,输入的数据不会上传到服务器。