已针对 2GB 内存 服务器进行缓冲区动态调整,并启用了 BBR 与 MPTCP。
核心特性#
- 拥塞控制: 启用 BBR,提升高丢包环境下的吞吐量。
- 内存优化: 针对 2GB RAM 调整 tcp_mem,防止高并发下的内存溢出。
- 快速回收: 优化 fin_timeout 与 tw_reuse,加速释放孤儿连接。
- 协议增强: 开启 TCP FastOpen 和 MPTCP 支持。
调参效果展示#
调参前:

调参后:

一键部署指令#
直接在终端执行以下命令,即可自动从 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