tcpdump [ -AdDefIKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c 计数 ]
[ -C file_size ] [ -G rotate_seconds ] [ -F 文件 ]
[ -i 界面 ] [ -m 模块 ] [ -M 秘密 ]
[ -r 文件 ] [ -s snaplen ] [ -T 类型 ] [ -w 文件 ]
[ -W filecount ]
[ -E spi @ ipaddr算法:秘密,... ]
[ -y datalinktype ] [ -z postrotate-command ] [ -Z 用户 ] [ 表达式 ]
-l 使stdout行缓冲。如果您希望在捕获数据的同时查看数据,则这很有用。例如:
tcpdump -l | tee dat'' or ''tcpdump -l > dat & tail -f dat
示例:
1、打印所有到达或离开sundown的数据包:
tcpdump host sundown
2、打印helios和hot或ace之间的流量:
tcpdump host helios and ( hot or ace )
3、要在ace和除helios之外的任何主机之间打印所有IP数据包:
tcpdump ip host ace and not helios
9、打印通过网关snup发送的长度超过576字节的IP数据包:
tcpdump 'gateway snup and ip[2:2] > 576'
一、默认启动
tcpdump
普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。
三、监视指定主机的数据包
打印所有进入或离开sundown的数据包.
tcpdump host sundown
也可以指定ip,例如截获所有192.168.1.120 的主机收到的和发出的所有的数据包
tcpdump host 192.168.1.120
♥截获主机hostname发送的所有数据
tcpdump -i eth0 src host hostname
♥监视所有送到主机hostname的数据包
tcpdump -i eth0 dst host hostname
四、监视指定主机和端口的数据包
如果想要获取主机192.168.1.120接收或发出的telnet包,使用如下命令
tcpdump tcp port 23 and host 192.168.1.120
对本机的udp 123 端口进行监视 123 为ntp的服务端口
tcpdump udp port 123
五、监视指定网络的数据包
打印本地主机与Berkeley网络上的主机之间的所有通信数据包(nt: ucb-ether, 此处可理解为'Berkeley网络'的网络地址,此表达式最原始的含义可表达为: 打印网络地址为ucb-ether的所有数据包)
tcpdump net ucb-ether
打印所有通过网关snup的ftp数据包(注意, 表达式被单引号括起来了, 这可以防止shell对其中的括号进行错误解析)
tcpdump 'gateway snup and (port ftp or ftp-data)'
打印所有源地址或目标地址是本地主机的IP数据包(如果本地网络通过网关连到了另一网络, 则另一网络并不能算作本地网络.(nt: 此句翻译曲折,需补充).localnet 实际使用时要真正替换成本地网络的名字)
tcpdump ip and not net localnet
例子:
tcpdump 命令使用示例
linux系统下执行tcpdump命令需要root
账号或者具备sudo
权限的账号,否则执行tcpdump命令说,系统会提示tcpdump: no suitable device found
。
在下面的例子中,-i eth0
参数表示只抓取 eth0 接口数据包,不加-i eth0
是表示抓取所有的接口包括 lo
。
01、抓取所有网络包,并在terminal
中显示抓取的结果,将包以十六进制的形式显示。
tcpdump
02、抓取所有的网络包,并存到 result.cap
文件中。
tcpdump -w result.cap
03、抓取所有的经过eth0
网卡的网络包,并存到result.cap
文件中。
tcpdump -i eth0 -w result.cap
04、抓取源地址是192.168.1.100
的包,并将结果保存到 result.cap
文件中。
tcpdump src host 192.168.1.100 -w result.cap
05、抓取地址包含是192.168.1.100
的包,并将结果保存到 result.cap
文件中。
tcpdump host 192.168.1.100 -w result.cap
06、抓取目的地址包含是192.168.1.100
的包,并将结果保存到 result.cap
文件中。
tcpdump dest host 192.168.1.100 -w result.cap
07、抓取主机地址为 192.168.1.100
的数据包
tcpdump -i eth0 -vnn host 192.168.1.100
08、抓取包含192.168.1.0/24
网段的数据包
tcpdump -i eth0 -vnn net 192.168.1.0/24
09、抓取网卡eth0
上所有包含端口22
的数据包
tcpdump -i eth0 -vnn port 22
10、抓取指定协议格式的数据包,协议格式可以是「udp,icmp,arp,ip」中的任何一种,例如以下命令:
tcpdump udp -i eth0 -vnn
11、抓取经过 eth0 网卡的源 ip 是 192.168.1.100 数据包,src
参数表示源。
tcpdump -i eth0 -vnn src host 192.168.1.100
12、抓取经过 eth0 网卡目的 ip 是 192.168.1.100 数据包,dst
参数表示目的。
tcpdump -i eth0 -vnn dst host 192.168.1.100
13、抓取源端口是22
的数据包
tcpdump -i eth0 -vnn src port 22
14、抓取源ip
是 192.168.1.100
且目的ip
端口是22
的数据包
tcpdump -i eth0 -vnn src host 192.168.1.100 and dst port 22
15、抓取源ip``192.168.1.100``22
tcpdump -i eth0 -vnn src host 192.168.1.100 or port 22
16、抓取源ip``192.168.1.100``22
tcpdump -i eth0 -vnn src host 192.168.1.100 and not port 22
17、抓取源ip
是192.168.1.100
且目的端口是22
,或源ip
是192.168.1.102
且目的端口是80
的数据包。
tcpdump -i eth0 -vnn ( src host 192.168.1.100 and dst port 22 ) or ( src host 192.168.1.102 and dst port 80 )
18、把抓取的数据包记录存到/tmp/result
文件中,当抓取100
个数据包后就退出程序。
tcpdump –i eth0 -vnn -w /tmp/result -c 100
19、从/tmp/result
记录中读取tcp
协议的数据包
tcpdump -i eth0 tcp -vnn -r /tmp/result
20、想要截获所有192.168.1.100
的主机收到的和发出的所有的数据包:
tcpdump host 192.168.1.100
21、如果想要获取主机192.168.1.100
除了和主机192.168.1.101
之外所有主机通信的ip包,使用命令:
tcpdump ip host 192.168.1.100 and ! 192.168.1.101
22、如果想要获取主机 192.168.1.100
接收或发出的 telnet
包,使用如下命令:
tcpdump tcp port 23 host 192.168.1.100
https://blog.csdn.net/nanyun2010/article/details/23445223