-i <interface> 指定监听的网络接口
-v 指定详细模式输出详细的报文信息
-vv 指定更详细模式输出更详细的报文信息
-x 指定以16进制数格式显示数据包
-X 规定以ASCII码格式显示输出
-n 规定在捕获过程中不需向DNS查询IP地址
-F <file> 从指定文件中读取表达式
-D 显示可用网络接口
-s <length> 设置捕获数据包的长度
TCPDump的表达式:
默认情况下TCPDump将捕获所有到达网络的数据包.这并不是我们想要的,因此就必须通过表达式来限制不必要的流量,只输出我们需要监听的数据包.
1. 类型限定词
类型限定词有: host, port和net. host用来指定主机或目的地址,port指定端口,net可以用来指定某一子网. 如:
tcpdump 'port 80' 监听80端口
tcpdump 'net 192.168.1' 监听子网192.168.1.0
tcpdump 'net 192.168.1.0/24'
2. 逻辑运算符
逻辑运算符有AND,OR和NOT. ()可将多个表达式组合起来.
tcpdump 'port 80 and (host 192.168.1.10 or host 192.168.1.11)'
监听主机192.168.1.10 或 192.168.1.11的80端口.
3. 传输方向限定词
关键词src指定源地址,dst指定目的地址
tcpdump 'port 80 and (src 192.168.1.10 or src 192.168.1.11)'
tcpdump 'dst port 25'
4. 协议 限定词
用来捕获特定协议 的数据包有: ether(Ethernet), TCP,UDP,ICMP,IP,ip6(IPv6),ARP,rarp(reverse ARP)等.
5. 原语
原语主要有: 算术运算符(+,-,*,/,>,<,>=,<=,!=等), broadcast, gateway, greater, less.
broadcast捕获广播数据包, greater和less相当于>=和<=.
要抓本机程序发的包,应该是监听lo0.