tcpdump的使用方法
tcpdump是Linux中强大的网络数据采集分析工具之一。tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。1. 常用的参数$ tcpdump# 默认情况下,直接启动tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包。$ tcpdump -i eth1# 【参数】-
·
tcpdump是Linux中强大的网络数据采集分析工具之一。tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
1. 常用的参数
$ tcpdump # 默认情况下,直接启动tcpdump将监视第一个网络接口(非lo口)上所有流通的数据包。
$ tcpdump -i eth1 # 【参数】-i,指定网卡,如eth0、eth1。
$ tcpdump -Q out # 【参数】-Q,指定输出还是输出,如in、out、inout
$ tcpdump -c 10 # 【参数】-c,指定抓取包的数量
$ tcpdump -X # 【参数】-X, 打印出抓取数据的内容,会以16进制和ASCII两种方式同时输出。-XX,更加详细内容
$ tcpdump -v # 【参数】-v,显示详细的包头信息。-vv,-vvv更加详细
$ tcpdump -s 1024 # 【参数】-s, 指定截取包的长度。默认65535。如果包的长度超过截取的长度,
# 发生截取时,输出行会输出[|proto]的标志。但是设置的长度越长,包的处理时间也会变长
$ tcpdump -w test # 【参数】-w, 将抓取的数据存到文件test中
$ tcpdump -r test # 【参数】-r ,从test中读取数据,显示出来
注意: 以上参数可以搭配使用。也可以与后面的关键字搭配使用
2. 常用的关键字
$ tcpdump dst 192.216.20.66 # 【关键字】dir 抓取 指定接收端ID的包
$ tcpdump src 192.216.20.144 # 【关键字】src 抓取 指定发送端IP的包
$ tcpdump host 192.216.20.66 # 【关键字】host 抓取 指定主机发送和接收的数据包
$ tcpdump port 22 # 【关键字】port 抓取 指定端口的IP的包
$ tcpdump udp # 【关键字】 udp tcp 指定抓取协议类型。
$ tcpdump tcp
注意:关键字在使用过程中需要用逻辑运算符或者逻辑运算语句进行连接,这点区别上面提到的参数的用法。
常用的逻辑运算语句有:and、or &&、 ||
取非运算符: not 、 ! (实测在使用取非运算符时,也需要用与或运算符进行连接,否则报语法错误)
例子:
$ tcpdump -i eth0 dst 192.216.20.141 and not port 22 and udp -X -c 10
# -i eth0 指定网卡 etho
# dir 指定抓取发给192.216.20.141的包
# not port 排除端口 22 不接受端口为22的包
# udp 指定协议为udp
# -X 打印出内容 12进制和ASCII的方式
# -c 只抓取10个包
此外:tcpdump可以与grep指定配合使用,来对数据进行过滤。
更多推荐
已为社区贡献3条内容
所有评论(0)