tcpdump 是一款强大的网络协议分析器,用于捕获和分析网络流量
安装必要的package
apt-get update
apt-get install tcpdump (ubuntu用apt-get, centos用yum; cat /etc/os-release可以查看操作系统)
apt-get install net-tools
基本的 tcpdump 使用方法及其参数:
1.基本抓包:sudo tcpdump
这将监听默认网络接口的所有流量。通常需要使用 sudo 或其他形式的管理员权限运行,因为它需要访问底层网络接口。
2. 指定网络接口:sudo tcpdump -i [interface]
指定要监听的网络接口,例如:sudo tcpdump -i eth0
3. 按 IP 地址过滤:sudo tcpdump host [ip_address]
只捕获与指定 IP 地址相关的流量:sudo tcpdump host 192.168.1.100
4. 按端口过滤:sudo tcpdump port [port_number]
捕获指定端口的流量:sudo tcpdump port 80
5. 按协议过滤:sudo tcpdump proto [protocol]
捕获特定协议的流量,例如 HTTP:sudo tcpdump proto http
6. 按布尔表达式过滤:sudo tcpdump 'expression'
使用布尔表达式进行复杂过滤,例如捕获特定方向的 HTTP GET 请求:sudo tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and dst port 80'
7. 保存捕获的数据到文件:sudo tcpdump -w [output_file]
将捕获的数据保存到 pcap 文件中:sudo tcpdump -w capture.pcap
8. 从文件中读取并显示捕获的数据:sudo tcpdump -r [capture_file]
从 pcap 文件中读取并显示捕获的数据:sudo tcpdump -r capture.pcap
9. 显示摘要信息:sudo tcpdump -q
使用 -q 参数减少输出信息的详细程度。
10. 显示详细的解码信息:sudo tcpdump -v or -vv or -vvv
-v 参数可以多次使用以增加输出的详细度。
11. 捕获指定数量的包:sudo tcpdump -c [number_of_packets]
捕获指定数量的网络包后停止:sudo tcpdump -c 100
例子
tcpdump -i lo -nne port 10002 -nnv -w localhost10002.pcap # lo是localhost的简称
tcpdump -i eth0 -nne port 10002 -nnv -w ethernet10002.pcap # eth是ethernet的简称,eth0表示第一个网卡。
抓包
tcpdump -i lo -nnve port 41008 -w 31008.pcap