Hugo博客公告弹窗

TCP 网络优化配置指南

一、前期准备

准备工作

查看当前的 net.ipv4.tcp_wmem 参数值(最好记录一下)

sysctl net.ipv4.tcp_wmem

查询当前使用的 TCP 拥塞控制算法

sysctl net.ipv4.tcp_congestion_control

查看当前的队列管理算法

tc qdisc show

如未启用bbr+fq,请使用以下命令开启

echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
sysctl -p

服务端Linux安装iperf3

在Debian/Ubuntu系统上安装

apt update
apt install iperf3

防火墙放行端口 (这里以ufw为例,如果你没有开启防火墙可略过这一步)

ufw allow 5201

服务端启动iperf3

iperf3 -s

2. 客户端配置(Windows)

  1. 下载 iperf3 Windows 版本
  2. 测试下行速度(30秒)
iperf3 -c 服务端IP -R -t 30 -p 5201
  1. 测试上行速度(去掉-R参数)
iperf3 -c 服务端IP -t 30 -p 5201

二、参数优化流程

1. 参数调整方案

  1. 初始测试:使用 iperf3 获取基准性能数据

  2. 参数调优

    • 出现 0 重传或个位数重传:适当增大缓冲区(增加 2~4 MiB)
    • 出现较高重传:减小缓冲区(减少 1~2 MiB)
  3. 优化步骤

    # 增大缓冲区(当发现 0 重传时)
    sysctl -w net.ipv4.tcp_wmem="4096 16384 理论值+3MiB"
    sysctl -w net.ipv4.tcp_rmem="4096 87380 理论值+3MiB"
    
    # 减小缓冲区(当发现高重传时)
    sysctl -w net.ipv4.tcp_wmem="4096 16384 理论值-2MiB"
    sysctl -w net.ipv4.tcp_rmem="4096 87380 理论值-2MiB"
    
  4. 最终调优:找到重传为 0 或低重传(100 以内)理想值,并根据稳定性需要再下调 0.5~1 MiB。

2. 参数持久化脚本

注意:脚本中的 2939240 仅需修改为实际的值。

#!/bin/bash
# 定义 TCP 缓冲区参数
TCP_WMEM="4096 16384 2939240"
TCP_RMEM="4096 87380 2939240"

# 更新配置文件
sed -i '/^net.ipv4.tcp_[wr]mem/d' /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = $TCP_WMEM" >> /etc/sysctl.conf
echo "net.ipv4.tcp_rmem = $TCP_RMEM" >> /etc/sysctl.conf

# 应用更改
sysctl -p

三、辅助工具

  1. 在线工具

  2. 自动优化脚本

wget -q https://raw.githubusercontent.com/BlackSheep-cry/TCP-Optimization-Tool/main/tool.sh -O tool.sh && chmod +x tool.sh && ./tool.sh

四、实际案例参数

不同环境参数参考

  1. v.ps-sjc 彦祖猫
net.ipv4.tcp_wmem = 4096 16384 2939240
net.ipv4.tcp_rmem = 4096 87380 2939240
  1. vmiss 伦敦
net.ipv4.tcp_wmem = 4096 16384 4326424
net.ipv4.tcp_rmem = 4096 87380 4326424
  1. 斯巴达-西雅图
net.ipv4.tcp_wmem = 4096 16384 237500000
net.ipv4.tcp_rmem = 4096 87380 237500000
  1. Netcup VPS1000
net.ipv4.tcp_wmem = 4096 16384 6278480
net.ipv4.tcp_rmem = 4096 87380 6278480
  1. 阿里云-hk-30m
net.ipv4.tcp_wmem = 4096 16384 90000
net.ipv4.tcp_rmem = 4096 87380 90000
CC BY-NC-SA 4.0 转载请注明
最后更新于 2025-01-15 13:02
clarity统计