tcpdump的host、port、net参数是核心过滤机制,分别用于捕获特定主机、端口或网络的数据包。通过组合这些参数,可精准定位流量,提升网络排查、安全审计与性能分析效率。

tcpdump
host
port
net
tcpdump
host
port
net
1. host
当你需要观察某个特定IP地址或主机名相关的流量时,
host
tcpdump host <IP地址或主机名>
192.168.1.100
tcpdump host 192.168.1.100
www.example.com
tcpdump
tcpdump host www.example.com
192.168.1.100
tcpdump src host 192.168.1.100
192.168.1.100
tcpdump dst host 192.168.1.100
2. port
网络服务通常运行在特定的端口上。
port
tcpdump port <端口号>
tcpdump port 80
tcpdump port 22
tcpdump src port 80
tcpdump dst port 80
3. net
当你的关注点是一个IP网络或子网时,
net
tcpdump net <网络地址/CIDR>
192.168.1.0/24
tcpdump net 192.168.1.0/24
10.0.0.0/8
tcpdump src net 10.0.0.0/8
172.16.0.0/16
tcpdump dst net 172.16.0.0/16
组合使用:
这三个参数的真正威力在于它们的组合。你可以使用逻辑运算符
and
&&
or
||
not
!
192.168.1.100
tcpdump host 192.168.1.100 and not port 80
192.168.1.0/24
10.0.0.1
tcpdump net 192.168.1.0/24 and (host 10.0.0.1 and (port 22 or port 80))
(注意括号的使用,它们可以改变运算符的优先级)
当简单的
host
port
net
tcpdump
首先,要理解
tcpdump
host
port
net
proto
tcp
udp
icmp
一个常见的场景是,你需要找出某个应用服务器(比如
192.168.1.5
192.168.1.10
3306
你可以这样构建你的过滤表达式:
tcpdump -i eth0 '((src host 192.168.1.5 and dst host 192.168.1.10 and dst port 3306) or (src host 192.168.1.10 and src port 3306 and dst host 192.168.1.5)) and tcp and not port 22'
这里,
-i eth0
3306
and tcp
and not port 22
另一个技巧是,当你对网络状况一无所知时,可以从一个宽泛的过滤条件开始,比如只看某个主机的流量
tcpdump host <target_ip>
and port X
and tcp
and not host Y
有时候,你甚至需要深入到数据包的头部字段进行过滤。例如,你想看所有SYN包(TCP连接建立的第一个包):
tcpdump 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0'
这稍微有点高级,但展示了
tcpdump
SYN
RST
记住,高效过滤的关键在于你对网络协议和应用行为的理解。你越清楚自己在找什么,就能构建越精准的过滤器。
tcpdump
host
port
net
想象一个场景:用户反馈无法访问你的Web服务。
“服务是不是压根没启动?”
“是不是服务器的防火墙挡住了?”
tcpdump -i eth0 src host <客户端IP> and dst port 80
eth0
iptables
“客户端和服务器之间网络连通性如何?”
tcpdump dst host <服务器IP> and port 80
tcpdump
“某个内部服务间通信有问题?”
192.168.1.20
192.168.1.30
8080
tcpdump -i eth0 src host 192.168.1.20 and dst host 192.168.1.30 and dst port 8080
tcpdump -i eth0 src host 192.168.1.20 and dst host 192.168.1.30 and dst port 8080
“某个网段流量异常?”
192.168.2.0/24
tcpdump -i eth0 net 192.168.2.0/24
wireshark
这些参数就像是网络故障排查的“导航仪”,能帮助你迅速将目光锁定在问题最可能发生的区域,避免大海捞针式的盲目猜测。
tcpdump
1. 权限问题:
tcpdump
root
CAP_NET_RAW
CAP_NET_ADMIN
2. 接口选择 (-i
eth0
eth1
lo
docker0
-i
tcpdump
loopback
tcpdump
docker0
-i <interface_name>
ip a
ifconfig
3. 捕获长度 (-s
tcpdump
-s 0
tcpdump -s 0 -i eth0 port 80
4. 输出到文件 (-w
-r
tcpdump
-w <filename.pcap>
tcpdump -i eth0 -w /tmp/capture.pcap host 192.168.1.100
tcpdump -r /tmp/capture.pcap
wireshark
5. 性能考量:
tcpdump
-s 0
tcpdump
dropped packets
tcpdump -i eth0 host 192.168.1.100 and port 80
tcpdump -i eth0
-B <buffer_size>
-w
6. 混杂模式 (Promiscuous Mode):
tcpdump
tcpdump
7. 加密流量:
tcpdump
tcpdump
tcpdump
在使用
tcpdump
以上就是Linux tcpdump host、port、net参数使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号