在管理Linux主机时,我们经常需要检查主机的网络流量和端口通讯情况。
一般情况下,我们往往需要检查两方面的内容:(1) 目前主机开放监听了哪些外部端口?建立了哪些网络连接?(2) 当前的网络流量细化到每个连接、进程的情况是怎样的?
下面根据这两种实际情境,介绍四个 Linux 的管理工具:(1) netstat, (2) ss, (3) iftop, (4) nethogs.
一、检查开放端口
ss -tulpn | grep LISTEN
这个 ss 命令本身就是用来检查sockets(端口)的. 如果需要解析主机名称,可以添加'r'选项(即 -tulpnr
).
netstat -tulpn | grep LISTEN
这个 netstat 命令可以检查 Linux 下的网络连接情况,同样也可以通过添加'r'选项来解析主机名。
假如我们需要检查当前主机有哪些进行中的网络连接通讯,可以使用 ss 命令获得已经建立(establish)的连接信息。
ss -tapn |grep -v 'LISTEN'
二、检查网络流量
sudo nethogs -d 5 [-l]
nethogs 程序可以列出所有进程在所有网络接口的下载、上传通讯流量。'-d'选项指定刷新的秒数。'-l'可以列出进程完整的命令(可以不加)。
sudo iftop -i wlo1
iftop 程序在这个方面的一个优势在于可以对进程按流量速度进行排序显示。'-i'选项后需要指定网络接口(可以通过ifconfig
命令查到)。
需要注意的是这两个命令都需要sudo权限来执行。
参考资料: