有一个邪恶的应用程序占用了我所有的上传带宽(我是巴西人,只有~35kbps),在我电脑开启的 80% 的时间里。
我想知道是否有任何方法可以跟踪这种使用情况并发现哪个应用程序正在执行此操作。
答案1
关于什么网猪?我认为它更加人性化。实时列出哪些命令/程序使用网络以及每个命令/程序占用多少带宽。
在 ubuntu/debian 系统中安装它:
sudo apt-get 安装 nethogs
运行它来监视你的网络接口,如下所示:
sudo nethogs eth0
答案2
iftop
是一个类似于 top 的基于控制台/shell 的程序,可以使用 pcap 库(tcpdump 和 wireshark 也使用这个库)。它可从 Universe 中下载用于 Ubuntu。
sudo aptitude install iftop
sudo iftop
在 ubuntu 系统上运行升级时:
使用 netstat,您可以找出连接到特定端口或 IP 的进程。对于端口,最好在前面加上冒号。
sudo netstat -plantu | grep "some_port_number_or_ip_address"
例如,查看 ssh 的打开连接:
sudo netstat -plantu | grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2376/sshd
tcp 0 0 10.13.37.122:22 10.13.37.105:59130 ESTABLISHED 4033/sshd: jtimberm
tcp6 0 0 :::22 :::* LISTEN 2376/sshd
您还可以使用 lsof 查找开放端口连接:
sudo lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 2376 root 3u IPv4 5613 0t0 TCP *:ssh (LISTEN)
sshd 2376 root 4u IPv6 5615 0t0 TCP *:ssh (LISTEN)
sshd 4033 root 3u IPv4 11608 0t0 TCP 10.13.37.122:ssh->10.13.37.105:59130 (ESTABLISHED)
sshd 4086 jtimberman 3u IPv4 11608 0t0 TCP 10.13.37.122:ssh->10.13.37.105:59130 (ESTABLISHED)
您可以使用 -p PID 从 lsof 获取有关打开文件的更多信息。
sudo lsof -p 2376
(大量输出因此被抑制)
答案3
ntop是你的朋友。软件包位于 linux repos 和 macports 中。
答案4
我认为 iftop 的用户界面设计得不太好。实际上,几乎不需要实时查看 IP 或主机名。如果我需要列出所有当前连接,我会使用 netstat,正如 jtimberman 所解释的那样。
就我而言,bmon 比 iftop 更合适。它有一个非常简单的用户界面,支持多个界面和绘制“图形”。以下是屏幕截图:
如果您不需要 bmon 提供的所有功能,bwm-ng可能是最适合您的工具。它仅显示每个接口的当前占用带宽——不多也不少: