永久调整文件描述符限制
写入 limits.conf(覆盖或追加,确保配置唯一)
tee -a /etc/security/limits.conf <<EOF
# 增加文件描述符限制(支持更多TCP连接)
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
EOF
# 若系统使用 systemd,需补充 systemd 配置(避免限制被覆盖)
tee -a /etc/systemd/system.conf <<EOF
DefaultLimitNOFILE=65535
EOF
tee -a /etc/systemd/user.conf <<EOF
DefaultLimitNOFILE=65535
EOF
# 重新加载 systemd 配置(立即生效后续启动的服务)
systemctl daemon-reload
永久调整内核tcp参数(sysctl配置)
创建独立的 TCP 优化配置文件(避免污染默认 sysctl.conf)
tee /etc/sysctl.d/99-tcp-tuning.conf <<EOF
# 允许更多 TIME_WAIT 状态连接(避免端口耗尽)
net.ipv4.tcp_max_tw_buckets = 60000
# 扩大本地端口范围(可用于主动连接的端口数量)
net.ipv4.ip_local_port_range = 1024 65535
# 增加 TCP 半连接队列长度(应对高并发握手)
net.ipv4.tcp_max_syn_backlog = 16384
# 启用 TIME_WAIT 快速回收(需配合端口复用)
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
# 增加 TCP 全连接队列长度(已完成握手的连接队列)
net.core.somaxconn = 32768
net.core.netdev_max_backlog = 32768
# 调整 TCP 连接超时和重试参数
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_fin_timeout = 30
EOF
# 加载配置使其永久生效(重启后仍有效)
sysctl -p /etc/sysctl.d/99-tcp-tuning.conf