服务器网络卡顿排查指南:用iftop和nethogs快速定位问题
一、服务器网络卡顿的常见症状
当您的服务器出现以下情况时,可能正面临网络带宽被占满的问题:
- SSH登录变得异常缓慢或卡顿
- 网站访问出现加载超时或响应迟缓
- 监控系统显示出口带宽已满,但无法确定具体原因
这些问题通常由某个IP地址或系统进程异常占用大量网络带宽引起。快速定位并解决这些问题对保证服务器正常运行至关重要。
二、iftop:实时监控各IP网络流量
工具简介
iftop是一款强大的实时网络流量监控工具,能够按IP地址显示当前网卡的发送与接收速率,特别适合排查"哪个外部IP正在与服务器进行大量数据通信"的问题。
安装方法
Ubuntu/Debian系统:
sudo apt update
sudo apt install -y iftop
CentOS/RHEL/AlmaLinux/Rocky Linux系统:
# CentOS 7及以下版本
sudo yum install -y epel-release
sudo yum install -y iftop
# CentOS 8+/AlmaLinux 9等
sudo dnf install -y epel-release
sudo dnf install -y iftop
基本使用命令
- 监控默认网卡(通常是eth0):
sudo iftop -i eth0
- 监控无线网卡(适用于笔记本或树莓派):
sudo iftop -i wlan0
- 仅监控80端口的HTTP流量:
sudo iftop -f "port 80"
- 仅监控与特定IP(如192.168.1.1)的流量:
sudo iftop -f "dst host 192.168.1.1"
如何确定网卡名称?
如果不确定服务器使用哪个网卡,可以运行以下任一命令查看:
ip addr
或
ifconfig
输出结果解读
- 左侧显示:本地服务器的IP地址
- 右侧显示:与之通信的远程IP地址
- 三列带宽数据:分别表示2秒、10秒和40秒内的平均传输速率(通常以KB/s或Mb/s为单位)
- 重点关注:顶部显示流量最大的连接,这些通常是当前带宽占用的主要来源
三、nethogs:按进程查看带宽占用
工具简介
nethogs是一个按进程(PID)统计网络使用量的工具,能够直接显示是哪个具体程序(如Nginx、Python脚本或可疑的挖矿程序)在消耗大量网络带宽。
安装方法
Ubuntu/Debian系统:
sudo apt update
sudo apt install -y nethogs
CentOS/RHEL/AlmaLinux/Rocky Linux系统:
# CentOS 7及以下版本
sudo yum install -y epel-release
sudo yum install -y nethogs
# CentOS 8+/AlmaLinux 9等
sudo dnf install -y epel-release
sudo dnf install -y nethogs
基本使用命令
- 监控所有网卡的进程流量(默认):
sudo nethogs
- 仅监控特定网卡(如eth0):
sudo nethogs eth0
输出字段说明
| 字段 | 说明 |
|---|---|
| PID | 进程ID,可用于终止异常进程 |
| USER | 运行该进程的系统用户 |
| PROGRAM | 程序路径(如/usr/bin/python3) |
| DEV | 使用的网络接口 |
| SENT / RECEIVED | 实时发送与接收速率 |
操作建议
- 发现异常高流量进程后:
- 记下该进程的PID
- 执行以下命令终止该进程:
kill -9 <PID> - 进一步确认进程详情:
ps -p <PID> -f
四、快速诊断网络问题的工作流程
当服务器出现网络卡顿问题时,建议按照以下步骤操作:
- 首先运行nethogs,快速识别是哪个系统进程在消耗大量带宽
- 如果nethogs无法确定问题,或者需要查看外部连接情况,再运行iftop查看各IP的流量情况
- 结合两个工具的结果,可以快速定位问题根源,无论是内部异常进程还是外部异常连接
五、常见问题解答
Q1:我的服务器网卡不是eth0,该怎么办?
答:不同服务器可能有不同的网卡命名规则。运行以下任一命令查看实际网卡名称:
ip addr
或
ifconfig
常见网卡名称包括ens33、enp0s3、wlan0等。在iftop和nethogs命令中,将eth0替换为您实际的网卡名称即可。
Q2:能否使用这些工具监控Docker或Kubernetes容器的流量?
答:可以。nethogs通常能够显示docker-proxy等容器相关进程。如果需要更深入地监控容器网络,可以进入容器网络命名空间使用iftop进行监控。
Q3:有没有图形化的替代方案?
答:确实存在如Netdata、vnstat+Web UI等图形化监控工具,但iftop和nethogs具有以下优势:
- 轻量级,对系统资源占用少
- 无需额外服务,直接运行即可使用
- 特别适合生产环境,特别是在服务器已经出现性能问题时
六、总结:快速解决服务器网络卡顿问题
| 工具 | 主要用途 | 适用场景 |
|---|---|---|
| iftop | 按IP地址查看实时网络流量 | 排查外部攻击、异常连接、识别高流量IP |
| nethogs | 按进程查看带宽占用情况 | 定位内部程序异常,如异常脚本、服务或恶意程序 |
建议:将本文收藏,当服务器再次出现网络异常时,只需30秒即可复制相应命令快速诊断问题,恢复服务器正常运行。
通过掌握iftop和nethogs这两个强大而简单的工具,您将能够快速诊断和解决服务器网络卡顿问题,确保服务器稳定运行。
本文发布于 40 天前,内容仍有参考价值
评论
请先登录后再评论
登录