CentOS 7 高出站流量50-80MiB/s,无法定位进程求助
排查CentOS 7突发大流量出站问题的步骤
这种刚装完系统就炸出异常大流量的情况确实闹心,直接重装虽然省事,但既然好奇想挖根源,咱们一步步来揪出问题:
先确认端口解析是否准确:iftop显示的
asterix是端口名,先查它对应的实际端口号,避免解析错误误导排查:grep asterix /etc/services找到对应端口后,后续排查用端口号会更精准。
实时抓包锁定流量细节:netstat和lsof可能抓不到短生命周期的连接(比如快速建立关闭的恶意连接),用tcpdump直接抓包:
# 替换成刚才查到的端口号,比如假设是5038 tcpdump -i any port 5038 -nn # 如果没查到端口号,直接抓所有非内网的出站流量(替换成你的内网网段) tcpdump -i any dst not in 192.168.0.0/16 -nn这样能看到目标IP、包的大小和类型,也可以把包保存下来后续分析:
tcpdump -w suspicious_traffic.pcap -i any按进程追踪流量:用nethogs工具直接关联流量和进程,比iftop更直观:
先安装工具:yum install nethogs -y运行(替换成你的网卡名,比如eth0或者ens33):
nethogs eth0它会实时显示每个进程的出站/入站流量,直接定位到产生大流量的进程PID和名称。
排查可疑进程与服务:
- 用
ps aux --sort=-%cpu,-%mem查看CPU、内存占用高的进程,留意陌生的进程名; - 用
systemctl list-units --type=service --state=running列出所有运行的服务,检查是否有未授权的服务在后台运行; - 检查定时任务,看是否有恶意脚本定时执行:
crontab -l ls -la /etc/cron* /var/spool/cron/
- 用
从系统日志找线索:系统日志里可能记录了异常连接、进程启动的痕迹:
# 查看系统消息日志 tail -n 100 /var/log/messages # 查看安全日志(登录、权限变更等) tail -n 100 /var/log/secure # 查看最近1小时的所有日志 journalctl --since "1 hour ago" --no-pager扫描rootkit与隐藏进程:如果怀疑系统被植入恶意程序,用rootkit扫描工具检查:
先安装工具:yum install rkhunter chkrootkit -y运行扫描:
rkhunter -c --sk chkrootkit重点关注扫描结果里的隐藏进程、异常文件警告项。
检查防火墙规则:确认是否有被修改的出站规则,允许大量流量流出:
firewall-cmd --list-all # 如果用的是iptables iptables -L -n -v
如果以上步骤都排查完还是找不到明确的根源,那可能是内核级的恶意模块或者更隐蔽的入侵,这时候重装系统确实是最稳妥的选择,但至少你已经把常见的排查路径都走了一遍,也排除了很多可能性。
内容的提问来源于stack exchange,提问作者Stuart Young
相关产品推荐
相关产品推荐

