关于优化Linux服务器网络的方案

下面是一套比较完整、偏实战的 Linux 网络优化方案,重点偏高吞吐 + 低延迟 + 稳定性。

按层级分为:内核 → TCP → 队列 → 网卡 → DNS → 应用。


一、内核网络基础优化(sysctl 核心)

编辑:

nano /etc/sysctl.conf

或者新建:

/etc/sysctl.d/99-net-opt.conf

1. 基础性能参数(强烈推荐)

# 连接队列
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_syn_backlog = 8192

# 文件句柄
fs.file-max = 1000000

2. TCP 优化(核心)

# 复用连接
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15

# keepalive
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 5

# 连接优化
net.ipv4.ip_local_port_range = 1024 65535

# 拥塞控制(关键)
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

# TIME_WAIT优化
net.ipv4.tcp_max_tw_buckets = 200000

3. MTU & 分片优化(避免丢包/卡顿)

net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.tcp_mtu_probing = 1

4. 缓冲区优化(高带宽 VPS 很关键)

net.core.rmem_max = 134217728
net.core.wmem_max = 134217728

net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728

应用配置:

sysctl -p

或:

sysctl --system

二、启用 BBR(必须确认)

检查内核:

uname -r

4.9+ 基本都支持。

启用:

modprobe tcp_bbr

确认:

sysctl net.ipv4.tcp_available_congestion_control

应看到:

bbr cubic reno

三、队列调度优化(fq + qdisc)

查看:

tc qdisc show

设置:

tc qdisc replace dev eth0 root fq

如果是高延迟 VPS(美国/欧洲),fq + bbr 非常关键。


四、网卡层优化(ethtool)

查看网卡:

ethtool -i eth0

开启 GRO / GSO / TSO

ethtool -K eth0 gro on
ethtool -K eth0 gso on
ethtool -K eth0 tso on

查看当前状态

ethtool -k eth0

五、中断绑定(高性能服务器)

如果 CPU 多核:

apt install irqbalance -y
systemctl enable irqbalance
systemctl start irqbalance

六、DNS 优化(非常重要)

编辑:

nano /etc/resolv.conf

推荐:

nameserver 1.1.1.1
nameserver 8.8.8.8

更稳定方案(推荐):

  • 本地跑 Unbound

  • 或 systemd-resolved + cache


七、IPv4/IPv6 混合优化

关闭不必要 IPv6(如果不用):

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

如果你用 IPv6(代理/VPS 常见):

net.ipv6.conf.all.forwarding = 1

八、连接复用优化(代理/服务端关键)

如果你跑:

  • Xray

  • Hysteria2

  • V2Ray

  • Nginx reverse proxy

建议:

net.core.somaxconn = 65535
net.ipv4.tcp_fastopen = 3

九、系统限制优化(ulimit)

编辑:

nano /etc/security/limits.conf

添加:

* soft nofile 1048576
* hard nofile 1048576
root soft nofile 1048576
root hard nofile 1048576

十、systemd 服务限制(重要)

编辑服务:

systemctl edit your.service

加入:

[Service]
LimitNOFILE=1048576

十一、网络参数检测脚本(推荐你用)

sysctl -a | grep tcp
tc qdisc show
ulimit -n

十二、一键优化脚本(可以直接用)

cat <<'EOF' > /root/net-opt.sh
#!/bin/bash

sysctl -w net.core.somaxconn=65535
sysctl -w net.core.netdev_max_backlog=16384
sysctl -w net.ipv4.tcp_max_syn_backlog=8192

sysctl -w net.core.default_qdisc=fq
sysctl -w net.ipv4.tcp_congestion_control=bbr

sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.ip_local_port_range="1024 65535"

sysctl -w fs.file-max=1000000

echo "done"
EOF

chmod +x /root/net-opt.sh

十三、真实优化建议(重点)

✔ 最重要的 5 个:

  1. BBR + fq

  2. rmem/wmem buffer

  3. somaxconn backlog

  4. fq qdisc

  5. ulimit

 

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享