温馨提示×

CentOS Dropped有何解决方案

小樊
50
2025-12-31 08:41:33
栏目: 智能运维

CentOS出现 dropped 的定位与解决方案

一、含义与快速判断

  • 在系统日志、ifconfig/ethtool 或 nload 中看到“dropped”,通常表示数据包被内核/网卡丢弃。常见诱因包括:网络接口或路由配置错误、防火墙/SELinux 拦截、连接跟踪表满、硬件(网线/NIC)问题、系统资源不足等。先用以下命令快速定位:
    • 查看接口与丢包:ip -s link show;ethtool -S | egrep ‘drop|error’
    • 查看系统日志:journalctl -xe;grep -i drop /var/log/messages
    • 连通性测试:ping 网关;ping 8.8.8.8;traceroute 8.8.8.8
    • 路由与防火墙:ip route;firewall-cmd --state;iptables -L -n -v

二、常见原因与对应修复

  • 网络接口/路由配置错误
    • 核对 /etc/sysconfig/network-scripts/ifcfg- 中的 IPADDR/NETMASK/GATEWAY/DNS;确保网卡为 UP 状态。
    • 修复路由:ip route add default via <网关> dev ;删除错误静态路由:ip route del <目标> via <网关> dev
    • 应用:systemctl restart NetworkManager 或 systemctl restart network。
  • 防火墙/SELinux 拦截
    • 排查 firewalld/iptables:firewall-cmd --list-all;iptables -L -n -v --line-numbers。
    • 临时放行测试:systemctl stop firewalld 或 iptables -P INPUT ACCEPT;定位后恢复最小权限规则并持久化。
    • SELinux:getenforce;setenforce 0 临时宽松;必要时执行 semanage port -a -t http_port_t -p tcp <端口> 或 setsebool -P httpd_can_network_connect 1。
  • 连接跟踪表满(高并发/大量短连接)
    • 现象:日志出现 “ip_conntrack: table full, dropping packet”。
    • 处理:临时 echo 100000 > /proc/sys/net/netfilter/nf_conntrack_max;永久写入 /etc/sysctl.conf:net.netfilter.nf_conntrack_max=100000 并执行 sysctl -p。
  • 硬件与驱动(网线/NIC/交换机端口)
    • 检查链路与错误计数:ethtool | egrep ‘Link detected|rx_errors|dropped’;必要时更换网线/端口/网卡。
    • 调整网卡 Ring Buffer:ethtool -G rx 4096 tx 4096(视硬件而定)。
  • 系统资源不足(CPU/内存/文件句柄)
    • 监控:top/htop;内存不足可临时增加 swap:fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile。
    • 文件句柄耗尽(常见“Connection reset by peer”等):ulimit -n 查看;在 /etc/security/limits.conf 增加 * soft/hard nofile 65536 并重启相关服务。

三、面向不同场景的排查顺序

  • 物理/链路层优先:确认网线/指示灯/交换机端口正常;ip link 看到 UP/LOWER_UP;必要时更换介质或端口。
  • 网络层:核对 IP/掩码/网关;ip route 必须有 default via;ping 网关与外网;traceroute 定位中断节点。
  • 传输层:ss -lntp 检查服务是否在监听;firewall-cmd/iptables 规则是否放行对应端口/协议。
  • 应用层与解析:nslookup/dig 测试 DNS;journalctl -u <服务> 查看服务日志与报错。

四、虚拟机环境的专项检查

  • 确认虚拟网络模式:桥接/NAT/仅主机选择正确;VMware/VirtualBox 中网卡适配器启用并与宿主机网络匹配。
  • 使用 nmtui 或 nmcli 配置 IP/网关/DNS;确保 NetworkManager 已启动并开机自启。
  • 若使用桥接,注意选择宿主机正确的物理网卡;NAT 模式通常无需额外端口转发即可出网。

五、临时应急与长期优化

  • 应急:短时将所有默认策略改为 ACCEPT 验证是否为策略问题;确认后再逐条恢复最小权限规则并持久化。
  • 持久化:iptables-save > /etc/iptables/rules.v4;firewalld 使用 --permanent 参数;sysctl -p 使内核参数生效。
  • 监控与预防:定期查看 dropped/error 计数(ip -s link、ethtool -S);为关键服务设置最小权限防火墙策略与必要的 SELinux 例外;对高并发场景提前规划 nf_conntrack_max 与内核网络参数;保持系统与驱动更新。

0