tcpdump 命令

南楼画角 提交于 2019-12-05 02:24:02

 

tcpdump命令高级网络 tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。

选项

-a:尝试将网络和广播地址转换成名称; 
-c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作; 
-d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出; 
-dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出; 
-ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出; 
-e:在每列倾倒资料上显示连接层级的文件头; 
-f:用数字显示网际网络地址; 
-F<表达文件>:指定内含表达方式的文件; 
-i<网络界面>:使用指定的网络截面送出数据包; 
-l:使用标准输出列的缓冲区; 
-n:不把主机的网络地址转换成名字; 
-N:不列出域名; 
-O:不将数据包编码最佳化; 
-p:不让网络界面进入混杂模式; 
-q :快速输出,仅列出少数的传输协议信息; 
-r<数据包文件>:从指定的文件读取数据包数据; 
-s<数据包大小>:设置每个数据包的大小; 
-S:用绝对而非相对数值列出TCP关联数; 
-t:在每列倾倒资料上不显示时间戳记; 
-tt: 在每列倾倒资料上显示未经格式化的时间戳记; 
-T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型; 
-v:详细显示指令执行过程; 
-vv:更详细显示指令执行过程; 
-x:用十六进制字码列出数据包资料; 
-w<数据包文件>:把数据包数据写入指定的文件。

例子

指定端口抓包

[root@layzj022301 ~]# tcpdump -i eth0

指定ip,截获所有该IP的主机收到的和发出的所有的数据包(如IP =[221.176.33.133)

[root@layzj022301 ~]# tcpdump host 221.176.33.133

监视指定主机和端口的数据包

[root@layzj022301 ~]# tcpdump tcp port 22 and host 221.176.33.133

抓包tcpdump 与wireshark

[root@layzj022301 ~]# tcpdump tcp -i eth0 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
解析:
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth0 : 只抓经过接口eth0的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

tcpdump --help

[root@study ~]# tcpdump --help
tcpdump version 4.1-PRE-CVS_2016_05_10
libpcap version 1.4.0
Usage: tcpdump [-aAdDefhIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
                [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
                [ -i interface ] [ -j tstamptype ] [ -M secret ]
                [ -Q|-P in|out|inout ]
                [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
                [ -W filecount ] [ -y datalinktype ] [ -z command ]
                [ -Z user ] [ expression ]
[root@study ~]#

选项

-a:尝试将网络和广播地址转换成名称; 
-c<数据包数目>:收到指定的数据包数目后,就停止进行倾倒操作; 
-d:把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出; 
-dd:把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出; 
-ddd:把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出; 
-e:在每列倾倒资料上显示连接层级的文件头; 
-f:用数字显示网际网络地址; 
-F<表达文件>:指定内含表达方式的文件; 
-i<网络界面>:使用指定的网络截面送出数据包; 
-l:使用标准输出列的缓冲区; 
-n:不把主机的网络地址转换成名字; 
-N:不列出域名; 
-O:不将数据包编码最佳化; 
-p:不让网络界面进入混杂模式; 
-q :快速输出,仅列出少数的传输协议信息; 
-r<数据包文件>:从指定的文件读取数据包数据; 
-s<数据包大小>:设置每个数据包的大小; 
-S:用绝对而非相对数值列出TCP关联数; 
-t:在每列倾倒资料上不显示时间戳记; 
-tt: 在每列倾倒资料上显示未经格式化的时间戳记; 
-T<数据包类型>:强制将表达方式所指定的数据包转译成设置的数据包类型; 
-v:详细显示指令执行过程; 
-vv:更详细显示指令执行过程; 
-x:用十六进制字码列出数据包资料; 
-w<数据包文件>:把数据包数据写入指定的文件。

例子

指定端口抓包

[root@layzj022301 ~]# tcpdump -i eth0

指定ip,截获所有该IP的主机收到的和发出的所有的数据包(如IP =[221.176.33.133)

[root@layzj022301 ~]# tcpdump host 221.176.33.133

监视指定主机和端口的数据包

[root@layzj022301 ~]# tcpdump tcp port 22 and host 221.176.33.133

抓包tcpdump 与wireshark

[root@layzj022301 ~]# tcpdump tcp -i eth0 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
解析:
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth0 : 只抓经过接口eth0的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

tcpdump --help

[root@study ~]# tcpdump --help
tcpdump version 4.1-PRE-CVS_2016_05_10
libpcap version 1.4.0
Usage: tcpdump [-aAdDefhIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
                [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
                [ -i interface ] [ -j tstamptype ] [ -M secret ]
                [ -Q|-P in|out|inout ]
                [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
                [ -W filecount ] [ -y datalinktype ] [ -z command ]
                [ -Z user ] [ expression ]
[root@study ~]#
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!