已针对 2GB 内存 服务器进行缓冲区动态调整,并启用了 BBRMPTCP

核心特性

  • 拥塞控制: 启用 BBR,提升高丢包环境下的吞吐量。
  • 内存优化: 针对 2GB RAM 调整 tcp_mem,防止高并发下的内存溢出。
  • 快速回收: 优化 fin_timeout 与 tw_reuse,加速释放孤儿连接。
  • 协议增强: 开启 TCP FastOpen 和 MPTCP 支持。

调参效果展示

调参前: 2026-05-07T20-14-58.592-com.png

调参后: 2026-05-07T20-22-54.421-com.png


一键部署指令

直接在终端执行以下命令,即可自动从 GitHub 获取最新配置并实时生效:

1
sudo wget -qO /etc/sysctl.d/99-proxy-tcp.conf "https://gist.githubusercontent.com/GEMILUXVII/673f21a906ee2f158b003514cec1a632/raw/f2fc52404505a1241482652f35fb593f5ca346b1/99-proxy-tcp.conf" && sudo sysctl -p /etc/sysctl.d/99-proxy-tcp.conf

验证状态

执行以下命令确认 BBR 是否生效:

1
2
sysctl net.ipv4.tcp_congestion_control
# 输出应为: net.ipv4.tcp_congestion_control = bbr

配置文件原文 (99-proxy-tcp.conf)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# BBR 拥塞控制
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_fastopen = 3

# 内存缓冲区 (针对 2GB 内存优化)
net.ipv4.tcp_mem = 20508 27348 41016
net.ipv4.tcp_rmem = 16384 262144 536870912
net.ipv4.tcp_wmem = 16384 262144 536870912
net.ipv4.tcp_moderate_rcvbuf = 1

# 连接复用与超时
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_max_tw_buckets = 32768
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_max_orphans = 4096

# 保活设置
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 3

# 传输性能
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_adv_win_scale = -2
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_recovery = 1
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_notsent_lowat = 4294967295
net.ipv4.tcp_syncookies = 1

# MPTCP 支持
net.mptcp.enabled = 1

进阶指南:如何根据 VPS 内存微调 TCP 参数

只有 tcp_mem 需要按内存大小手动计算,tcp_rmem / tcp_wmem 内核会自动伸缩,无需改动。

单位tcp_mem 的单位是 Page(内存页),Linux 下 1 Page = 4KB。

三个阈值含义net.ipv4.tcp_mem = [正常运行上限] [触发内存压力] [强制丢包上限]

计算公式(建议 TCP 缓冲池占物理内存的 4%~8%):

总页数 = 物理内存 GB × 262144

min = 总页数 × 4%,pressure = 总页数 × 5.5%,max = 总页数 × 8%

以 2GB 内存为例:总页数 = 524,288,得出:

net.ipv4.tcp_mem = 20971 28835 41943