本文聚焦于网络流量的查看、端口占用查看。至于网络设备的管理和配置,因为太过复杂且不同发行版有较大差异,这里就不赘述,后面看情况再写。
需要注意的是,这里列出的每一个工具都有丰富的功能,流量/端口信息查看只是其能力的一部分。可以根据需要深入学习了解,补充自己的工具链。
流量
瞬间流量
ip
这个命令来自 iproute2util
包。具有完整的网络设备、路由等功能。如果要查看当前时刻的网络速度,可以通过以下命令
# 查看所有网卡的当前时刻网速
ip -s -h link
实时流量
dstat
dstat
是一个用来替换 vmstat
、iostat
、netstat
、nfsstat
和 ifstat
的全能系统信息统计工具。可以通过 apt install -y dstat
安装。
dstat -tnf 1 10
用来输出接下来 10 秒内每秒的网络数据。
sar
sar
是 System Activity Report 的缩写,是一款全面的 Linux 系统运行状态统计和性能分析工具。可以从 IO、CPU 负载、内存使用等多个维度对系统活动报告。
sar
来自 sysstat
包。
sar -n TCP 1 10
可以查看接下来 10 秒内的 TCP 流量。
进程和端口
nc/netcat
nc
是网络工具中的瑞士军刀。用于 TCP、UDP 或 unix 域套接字(uds)的数据流操作,它可以打开 TCP 连接,发送 UDP 数据包,监听任意 TCP 和 UDP 端口,同时也可用作做端口扫描,支持 IPv4 和 IPv6,与 telnet
的不同在于 nc
可以编写脚本。
nc -vz 202.118.69.40 1-81
可以扫描 202.118.69.40 这台服务器 1-81 哪些端口开放。
ss/netstat
可以查看活动链接/监听端口, netstat
是 net-tools
包的一部分;ss
是 iproute2util
包的一部分。可以根据自己需要选择。
netstat -nlp
可以查看所有进程及其使用的端口信息。
lsof
lsof
(list open files)是一个列出当前系统打开文件的工具。因为在 Linux 中一切皆文件,所以也可以通过这个工具查看 TCP、UDP、SOCKET 等网络相关的信息。
lsof -i
可以查看符合指定条件的进程。参数是网络协议和地址。
# 监听 80 端口的进程
lsof -i :80
# 使用 tcp 协议的进程
lsof -i tcp
lsof -i tcp:80
lsof -i udp:80
# 所有使用 IPv4 协议的进程
lsof -i 4
# 列出被进程号为 1234 的进程所打开的所有 IPv4 网络文档
lsof -i 4 -a -p 1234
# 列出所有网络相关文档
lsof -N