linux流量监控
1. 使用 nethogs
查看每个程序的网络使用情况
nethogs
是一个按进程显示网络带宽使用情况的工具。
安装 nethogs
:
-
在 Debian/Ubuntu 系统上:
sudo apt install nethogs
-
在 CentOS/RHEL 系统上:
sudo yum install nethogs
使用 nethogs
:
运行以下命令:
sudo nethogs
你会看到每个进程的网络流量(上传和下载)。
2. 使用 ss
或 netstat
查看网络连接
ss
和 netstat
可以显示当前的网络连接,但需要结合 lsof
或 ps
来查找具体的进程。
使用 ss
:
sudo ss -tunap
-
-t
:显示 TCP 连接。 -
-u
:显示 UDP 连接。 -
-n
:以数字形式显示地址和端口。 -
-a
:显示所有连接。 -
-p
:显示进程信息。
你会看到类似以下的输出:
ESTAB 0 0 192.168.1.100:57632 203.0.113.1:443 users:(("chrome",pid=1234,fd=123))
这里会显示进程名称和 PID。
使用 netstat
:
sudo netstat -tunap
输出与 ss
类似。
3. 使用 lsof
查看打开的网络连接
lsof
可以列出打开的文件和网络连接。
查看所有网络连接:
sudo lsof -i
查看特定端口的连接:
sudo lsof -i :80
这会显示所有使用端口 80 的进程。
4. 使用 bmon
或 bwm-ng
查看实时流量
bmon
和 bwm-ng
是实时带宽监控工具,可以显示每个接口的流量,但不会显示具体进程。
安装 bmon
:
-
Debian/Ubuntu:
sudo apt install bmon
-
CentOS/RHEL:
sudo yum install bmon
使用 bmon
:
sudo bmon
5. 使用 iptables
记录流量
如果你需要更详细的流量记录,可以使用 iptables
记录流量并配合日志分析。
添加 iptables
规则:
sudo iptables -I OUTPUT -p tcp -j LOG --log-prefix "OUTPUT Traffic: "
sudo iptables -I INPUT -p tcp -j LOG --log-prefix "INPUT Traffic: "
查看日志:
日志通常保存在 /var/log/syslog
或 /var/log/messages
中:
sudo tail -f /var/log/syslog | grep "OUTPUT Traffic:"
总结
-
如果你想查看具体程序的网络使用情况,推荐使用
nethogs
。 -
如果你想查看网络连接和对应的进程,使用
ss
或netstat
。 -
如果你需要更详细的流量分析,可以结合
iptables
和日志工具。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码