在 Linux 上常用的嗅探器(如 tcpdump、tshark、ngrep)都支持按端口过滤,能只抓取 TCP/UDP 的指定端口流量,并可结合主机、协议、方向等条件精确定位。若使用 Wireshark(桌面环境),同样支持端口过滤与图形化分析。
tcpdump(命令行)
sudo tcpdump -i eth0 port 80sudo tcpdump -i eth0 'tcp dst port 443'sudo tcpdump -i eth0 -nn -X 'tcp port 22'sudo tcpdump -i eth0 -s 0 -w mysql.pcap 'port 3306'tcpdump -r mysql.pcap-i 指定网卡,-n 不解析主机名,-nn 不解析端口名,-X 显示内容,-s 0 抓取完整包,-w 写文件,-r 读文件。tshark(Wireshark 命令行)
sudo tshark -i eth0 'tcp port 80'sudo tshark -i eth0 'udp port 53'sudo tshark -i eth0 -c 100 'port 8080'ngrep(按端口与内容匹配)
sudo ngrep -d eth0 port 80sudo ngrep -d eth0 -q '^GET .* HTTP/1\.[01]' port 80Wireshark(图形界面)
tcp.port == 80(TCP 任意方向)、tcp.dstport == 443(仅目的端口)、udp.port == 1234port 80 或 tcp port 80tcp src port 8080tcp dst port 3306tcp port 80 and src host 192.168.1.10tcp port 514 or udp port 514tcp port 80 and not host 10.0.0.5tcp.port > 1 and tcp.port < 80==、&&、||、! 等运算符。sudo 运行。tcp port 53 or udp port 53)。tcpdump -r 或 Wireshark 打开,便于后续排查。