如何跟踪局域网使用情况?(又名'顶级局域网')

igo*_*s07 29 networking linux monitoring ubuntu

有一个邪恶的应用程序占用了我所有的上传带宽(我是巴西人,只有 ~35kbps),大约有 80% 的时间我的 PC 是打开的。

我想知道是否有任何方法可以跟踪此使用情况并发现正在执行此操作的应用程序。

jti*_*man 19

iftop是一个类似于top的基于控制台/shell的程序,可以使用pcap库(也被tcpdump和wireshark使用)。它可用于 Universe 的 Ubuntu。

sudo aptitude install iftop
sudo iftop
Run Code Online (Sandbox Code Playgroud)

在 ubuntu 系统上运行升级时:

替代文字

使用 netstat,您可以找出连接到特定端口或 IP 的进程。对于端口,最好以冒号作为前缀。

sudo netstat -plantu | grep "some_port_number_or_ip_address"
Run Code Online (Sandbox Code Playgroud)

例如,查看 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 
Run Code Online (Sandbox Code Playgroud)

您还可以使用 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)
Run Code Online (Sandbox Code Playgroud)

您可以使用 -p PID 从 lsof 获取有关打开文件的更多信息。

sudo lsof -p 2376
Run Code Online (Sandbox Code Playgroud)

(大量输出被抑制)

  • @Igoru 只是让答案更好,以便人们在搜索与您自己的问题类似的问题时获得更多相关信息。 (2认同)
  • 等等......这是一个Ubuntu系统吗?它看起来像 OS X。 (2认同)

小智 12

什么nethogs?在我看来,它更人性化。实时列出使用网络的命令/程序以及每个命令/程序的带宽。

在 ubuntu/debian 系统中安装它:

sudo apt-get 安装 nethogs

运行它以监视您的网络接口,如下所示:

须藤 nethogs eth0

替代文字


小智 9

ntop是你的朋友。软件包位于 linux repos 和 macports 中。

  • ntop 是一个优秀的程序,但它可能是过度杀伤和过于复杂。 (2认同)

小智 5

除了使用 iftop 来识别使用带宽的地址和端口外,还可以使用 netstat 来识别进程

须藤 netstat -ntp

这将显示所有打开的 TCP 连接以及附加到每个连接的进程名称/ID。