在 CentOS 上做“流量过滤 / 抓包过滤”,通常说的是 sniffer(抓包工具),最常见的是 tcpdump,也可能是 Wireshark(命令行 tshark)。下面按常见场景给你说明。
tcpdump -i eth0
只抓 eth0 网卡流量。
# 源或目的 IP
tcpdump host 192.168.1.10
# 源 IP
tcpdump src host 192.168.1.10
# 目的 IP
tcpdump dst host 192.168.1.10
# 端口 80
tcpdump port 80
# 源端口
tcpdump src port 443
# 目的端口
tcpdump dst port 22
tcpdump tcp
tcpdump udp
tcpdump icmp
tcpdump tcp and port 80
tcpdump host 192.168.1.10 and port 443
tcpdump not arp
tcpdump src 192.168.1.10 and not port 22
tcpdump -i eth0 -w traffic.pcap
之后可用 Wireshark 分析。
如果已安装:
yum install -y wireshark
示例:
tshark -i eth0 -f "tcp port 80"
tshark -i eth0 host 192.168.1.10
如果只是想限制/观察流量,而不是抓包:
iptables -I INPUT -s 192.168.1.10 -j LOG
yum install -y iftop
iftop -i eth0
| 需求 | 命令 |
|---|---|
| 抓某 IP | tcpdump host 1.2.3.4 |
| 抓 HTTP | tcpdump tcp port 80 |
| 抓非 SSH | tcpdump not port 22 |
| 抓 DNS | tcpdump udp port 53 |
| 抓网段 | tcpdump net 192.168.1.0/24 |
通常需要 root:
sudo tcpdump ...
如果你能告诉我:
我可以直接给你精确命令。