TCP 网络优化


要使这些 TCP 设置永久生效,您需要将相应的配置写入 /etc/sysctl.conf 文件中。然后,通过重新加载配置文件,确保在系统重启后这些设置仍然生效。

以下是将 TCP 设置永久生效的步骤:


1. 编辑 /etc/sysctl.conf 文件

您可以使用文本编辑器(如 vi 或 nano)编辑该文件。

1
nano /etc/sysctl.conf

2. 添加配置项

将以下设置添加到 sysctl.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
36
37
38
# 禁用 ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

# 禁用 ping
net.ipv4.icmp_echo_ignore_all = 1

# 增加 TCP 接收和发送缓冲区的大小
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# 启用 TCP 快速打开(TCP Fast Open)
net.ipv4.tcp_fastopen = 3

# 调整 TCP 拥塞控制算法为 BBR
net.ipv4.tcp_congestion_control = bbr

# 增加 TCP 保活时间
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 5

# 增加 SYN 队列大小
net.ipv4.tcp_max_syn_backlog = 2048

# 增加最大端口范围
net.ipv4.ip_local_port_range = 1024 65535

# 禁用 TCP 时间戳
net.ipv4.tcp_timestamps = 0

# 提高最大连接数
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_max_tw_buckets = 6000

3. 保存并关闭文件

在 vi 中,按 Esc 键,然后输入 :wq 并按回车键以保存并退出编辑器。

4. 重新加载 sysctl 配置

执行以下命令来重新加载 /etc/sysctl.conf 文件,使更改生效:

1
sysctl -p

5. 验证配置

您可以通过以下命令验证设置是否已经生效:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
net.ipv4.icmp_echo_ignore_all = 1
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_max_tw_buckets = 6000

总结

将这些设置写入 /etc/sysctl.conf 文件并通过 sysctl -p 加载配置后,这些优化将会在系统重启后自动生效。

您可以使用以下命令查看系统支持的 TCP 拥塞控制算法:

1
sysctl net.ipv4.tcp_available_congestion_control
1
net.ipv4.tcp_available_congestion_control = reno cubic bbr