netstat
、ss
或 lsof
命令来监听网络活动。sudo netstat -tuln
可以显示所有正在监听的端口和状态。在Linux操作系统中,监听命令是系统管理员和开发者常用的工具之一,这些命令可以帮助我们监控网络活动、进程状态以及系统资源的使用情况,本文将详细介绍几种常见的监听命令及其使用方法。
netstat
netstat
(network statistics)是一个强大的网络工具,用于显示网络连接、路由表、接口统计信息等,以下是一些常用的选项:
-a
:显示所有连接中的套接字。
-t
:显示TCP协议的连接状况。
-u
:显示UDP协议的连接状况。
-n
:直接使用IP地址,而不通过域名服务器解析主机名。
-l
:仅列出正在监听的套接字。
-p
:显示正在使用套接字的程序标识符和程序名称。
要查看当前系统中所有TCP端口的监听情况,可以使用以下命令:
sudo netstat -tulnp
tcpdump
tcpdump
是一个数据包分析器,用于捕获和分析通过网络接口传输的数据包,它对于诊断网络问题非常有用,以下是一些常用选项:
-i <interface>
:指定要监听的网络接口。
-nn
:不进行DNS解析和端口号转换。
-v
:详细模式,提供更多信息。
-w <file>
:将捕获的数据包保存到文件中。
-r <file>
:从文件中读取数据包。
要捕获经过eth0接口的所有TCP数据包,可以使用以下命令:
sudo tcpdump -i eth0 tcp
ss
ss
(socket statistics)是另一个用于调查socket的工具,比netstat
更快更高效,它提供了类似的功能,但通常具有更好的性能和更少的资源消耗,常用选项包括:
-a
:显示所有套接字。
-t
:显示TCP协议的连接状况。
-u
:显示UDP协议的连接状况。
-l
:仅列出正在监听的套接字。
-p
:显示正在使用套接字的程序标识符和程序名称。
-n
:直接使用IP地址,而不通过域名服务器解析主机名。
要查看当前系统中所有TCP端口的监听情况,可以使用以下命令:
sudo ss -tulnp
iptraf-ng
iptraf-ng
是一个实时流量监控工具,它可以提供有关网络接口上流量的详细信息,它支持多种协议,并可以以图形化的方式展示数据,常用命令如下:
sudo iptraf-ng
启动后,你可以通过菜单选择不同的选项来查看不同类型的流量统计信息。
iftop
iftop
是一个基于终端的实时网络带宽监控工具,类似于top
命令,但它专注于网络流量,常用选项包括:
-i <interface>
:指定要监控的网络接口。
-n
:不进行DNS解析,直接显示IP地址。
-N
:不进行端口号转换,直接显示端口号。
要监控eth0接口的流量,可以使用以下命令:
sudo iftop -i eth0
nload
nload
是一个基于终端的实时网络流量监控工具,它可以显示进出网络接口的流量,常用选项包括:
-i <interface>
:指定要监控的网络接口。
要监控eth0接口的流量,可以使用以下命令:
sudo nload eth0
bmon
bmon
(bandwidth monitor)是另一个实时网络带宽监控工具,它可以以图形化的方式展示进出网络接口的流量,常用选项包括:
-p <port>
:指定要监控的端口。
-i <interface>
:指定要监控的网络接口。
要监控eth0接口的流量,可以使用以下命令:
sudo bmon -i eth0
ngrep
ngrep
是一个基于grep的网络数据包搜索工具,它可以实时过滤并显示匹配特定模式的数据包,常用选项包括:
-d <device>
:指定要监控的网络接口。
-l <file>
:将匹配的数据包保存到文件中。
要在eth0接口上搜索包含“HTTP”的数据包,可以使用以下命令:
sudo ngrep -d eth0 "HTTP"
wireshark
wireshark
是一个功能强大的图形化网络协议分析器,它可以捕获和分析通过网络传输的数据包,虽然不是基于终端的工具,但它提供了丰富的功能,如数据包过滤、解码和可视化分析,安装后,可以通过GUI界面轻松操作。
tshark
tshark
是wireshark
的命令行版本,适用于需要脚本化处理的场景,常用选项与tcpdump
类似,
sudo tshark -i eth0 -f "tcp port 80"
这条命令将捕获经过eth0接口且目标端口为80(HTTP)的所有数据包。
FAQs
Q1: 如何更改netstat命令的输出格式?
A1: 你可以使用netstat
的-o
选项来启用批量输出模式,这样输出会更紧凑,还可以结合其他选项如-n
(数字格式)和-p
(显示程序名称)来定制输出格式。
sudo netstat -ntlp
Q2: 如何停止正在运行的tcpdump或tshark捕获?
A2: 你可以使用Ctrl+C快捷键来终止正在运行的tcpdump或tshark进程,如果你已经将数据包保存到文件中,可以使用kill
命令加上进程ID来终止进程:
kill <PID>
其中<PID>
是tcpdump或tshark进程的进程ID,可以通过ps
命令查找。
各位小伙伴们,我刚刚为大家分享了有关“linux 监听命令”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!