CentOS dropped最佳实践
导读:CentOS dropped 最佳实践 一 问题定位与快速处置 明确“dropped”的类型:是网络层面的 packets dropped(丢包/被丢弃)、连接层面的 connection dropped(连接被重置/中断),还是系统层面...
CentOS dropped 最佳实践
一 问题定位与快速处置
- 明确“dropped”的类型:是网络层面的 packets dropped(丢包/被丢弃)、连接层面的 connection dropped(连接被重置/中断),还是系统层面的 session dropped(会话异常退出/服务崩溃)。
- 快速排查路径:
- 查看系统日志与内核消息:
journalctl -xe、tail -n 200 /var/log/messages; - 检查网络连通与路径:
ping 8.8.8.8、traceroute 8.8.8.8; - 检查接口与链路状态:
ip addr、ethtool < iface>; - 检查资源与空间:
df -h、free -m、top/vmstat/iostat; - 检查防火墙与连接跟踪:
sudo iptables -L -n -v --line-numbers、cat /proc/net/ip_conntrack | wc -l、cat /proc/sys/net/ipv4/ip_conntrack_max; - 无法登录或系统异常时,先挂载只读快照/救援模式备份关键数据,再修复或重装。
- 查看系统日志与内核消息:
二 常见根因与对应处置
- 连接跟踪表满(常见于高并发/大量短连接场景)
现象:内核日志出现 “ip_conntrack: table full, dropping packet”。
处置:- 临时提升:
sudo sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000; - 永久生效:在
/etc/sysctl.conf添加net.ipv4.netfilter.ip_conntrack_max = 100000并执行sysctl -p; - 同步优化相关参数(如
net.netfilter.nf_conntrack_tcp_timeout_established)并评估连接复用/长连接策略。
- 临时提升:
- 防火墙/规则配置错误
现象:合法流量被拒或默认策略过严导致“全部丢弃”。
处置:- 排查与回滚:
sudo iptables -L -n -v --line-numbers;必要时临时将默认策略设为 ACCEPT 验证,再精细化规则; - 持久化:
sudo iptables-save > /etc/iptables/rules.v4; - 使用
firewalld时仅放行必要服务(如 SSH/HTTP/HTTPS),变更后firewall-cmd --reload。
- 排查与回滚:
- 网络接口/路由配置错误
现象:接口未 UP、IP/掩码/网关错误导致内外网不通。
处置:核对/etc/sysconfig/network-scripts/ifcfg-< iface>或使用nmcli/ip修正,重启网络服务并复测连通性。 - 资源瓶颈与文件描述符不足
现象:高并发下出现连接被丢弃、服务不稳定。
处置:- 提升文件描述符:
/etc/security/limits.conf增加* soft nofile 65536、* hard nofile 65536; - 优化应用与内核网络缓冲(见第三部分参数示例)。
- 提升文件描述符:
- 磁盘空间耗尽
现象:日志/临时目录占满导致写入失败、会话异常。
处置:df -h定位大占用目录,清理/var/log、/tmp,必要时扩容或迁移日志。
三 推荐配置与优化参数
- 内核网络与TCP栈(示例为
/etc/sysctl.conf,执行sysctl -p生效)- 增大缓冲与窗口:
net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.ipv4.tcp_rmem = 4096 87380 16777216net.ipv4.tcp_wmem = 4096 65536 16777216net.ipv4.tcp_mem = 786432 1048576 26777216
- 连接与保活:
net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 120net.ipv4.tcp_syncookies = 1
- 增大缓冲与窗口:
- 连接跟踪与并发控制
- 提升上限:
net.ipv4.netfilter.ip_conntrack_max = 100000(按内存与业务评估调整); - 限制单源并发连接(示例:限制 SSH 并发连接数不超过 5):
sudo iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 5 -j DROP
- 提升上限:
- 文件描述符与系统资源
/etc/security/limits.conf:* soft nofile 65536* hard nofile 65536
- 安全基线(减少被攻击导致的异常丢弃)
- 启用并维持 SELinux Enforcing;
- 仅放行必要端口(如 22/80/443),变更后
firewall-cmd --reload; - SSH 加固:
PermitRootLogin no、PasswordAuthentication no、PubkeyAuthentication yes、按需更改端口并限制来源 IP。
四 长期预防与运维建议
- 持续更新与补丁:
sudo yum update -y(CentOS 7)或sudo dnf update -y(CentOS 8/Stream),关键系统建议启用自动更新策略。 - 备份与可观测性:
- 定期备份
/home、/etc等关键目录(如rsync/tar); - 监控 CPU/内存/磁盘 I/O 与网络丢包/重传,结合日志审计定位问题根因。
- 定期备份
- 安全与访问控制:
- 坚持最小权限原则,禁用不必要服务与端口;
- 使用
firewalld/iptables实施白名单与速率限制,减少资源被滥用导致的“dropped”。
- 架构与容量规划:
- 对高并发场景引入连接池、长连接/协议优化(如 HTTP Keep-Alive、TCP Fast Open 视内核与业务支持)、负载均衡与后端横向扩展。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS dropped最佳实践
本文地址: https://pptw.com/jishu/761367.html
