tcpdump命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tcpdump命令相关的知识,希望对你有一定的参考价值。

1.使用场景

1,服务器平时流量很少,突然把带宽跑满了,查看什么数据把带宽跑忙

2,访问服务器不成功,在服务器抓包,看是否有该IP的访问结果,多用于测试环境。


2.安装tcpdump

yum install -y tcpdump


3.使用tcpdump抓包

tcpdump

tcpdump -i 网卡

tcpdump -nn 数字的方式显示IP和端口。一个n是ip

tcpdump -c x 抓包数量,x为数字

tcpdump port xx 抓指定端口的包,xx为端口号

tcpdump tcp and port xx 指定协议和端口,xx为端口号,and可以省略不写

tcpdump host xx.xx.xx.xx 指定来源IP或目标IP的包 xx.xx.xx.xx为IP地址。

tcpdump -w xx.txt 把抓的包写入一个文件,xx.txt为文件名

tcpdump -s0 -w xx.txt  抓包时防止包截断,s0的0为数字0,抓一个完整的包必须加s0。

tcpdump -r xx.txt 用户查看-w抓的包,xx.txt为文件名

-w抓的包实际是包的内容,非简单的流向。如果访问一张图片,用-w可以把这张图片抓出来。只看流向的话,可以使用重定向。


3.1 默认显示 tcpdump

抓到了很多包,但是看起来不是方便。

技术分享图片


3.2 数字的方式显示 tcpdump -nn

技术分享图片


3.3 指定网卡设备 tcpdump -i lo

自己在新的标签页curl

技术分享图片


技术分享图片


3.4 指定包的数量 tcpdump -c 3

只抓3个包

技术分享图片


3.5 指定IP和端口

技术分享图片


4. 抓包的格式详解

主要看来源IP和目标IP,这两列。

例如:

16:52:25.923003 IP 10.10.8.3.59557 > 192.168.0.139.22: Flags [.], ack 196, win 16324, length 0


16:52:25.923003:时间.毫秒

IP:IP

10.10.8.3.59557:来源IP.port

> 192.168.0.139.22:目标IP.port

Flags [.], ack 196, win 16324, length 0:略


5. 抓包内容写入文件并查看

# tcpdump host 192.168.0.139 -w 1.txt

Ctrl + C 键 结束

技术分享图片


查看文件,发现乱码。

技术分享图片


# tcpdump -r 1.txt

技术分享图片


6.扩展

tshark命令可以抓包。下面这边命令可以显示IP访问的具体文件。

tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

技术分享图片



以上是关于tcpdump命令的主要内容,如果未能解决你的问题,请参考以下文章

如何读懂tcpdump的输出

tcpdump抓包命令使用说明

每天学一个 Linux 命令(72):tcpdump

tcpdump命令详解

tcpdump常用命令

tcpdump详细教程