tcpdump抓包基本使用方法 【掘金日新计划】

151 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情

前文

现在作为一个开发,网络相关的知识是必不可少要学习的。而tcpdump是linux下最流行的网络报抓包工具。 会一手tcpdump抓包,并进行分析,能够对我们解决问题有着事半功倍的效果。

大纲

image.png 看起来参数很多,不过实际咱们仅仅了解几个参数的用法就满足了。

使用

参数 -i 指定捕捉的网卡名

参数 -D 查看可捕捉的全部网卡列表

参数 -A 用ascii码打印报文的有效载荷。

参数 -c 捕捉指定报文数量后推出捕捉。

参数 -w 捕捉的报文写入到指定文件。

参数 -vv 打印详细报文信息。

参数 -n 打印数值型的地址,而不是网络地址。

过滤器

tcpdump的过滤器表达器使用bpf过滤语法。

常用的捕捉写语法有如下:

[src|dst] host <ip> 匹配来源或者目的地址

[tcp|udp] [src|dst] port <num> 匹配来自/去往num端口的tcp/udp协议

greater <length> 匹配长度大于或者等于length的报文

less <length> 匹配长度小于或者等于length的报文

gateway host <host> 捕捉把host作为网关的报文

用例

image.png

image.png 不加参数直接捉包,又是远程情况下,流量过大,不仅得不到你关心的报文,可能都无法停止捕捉。

tcpdump -c 20 捕捉二十个包退出捕捉

效果突下,可以初步观察到网络状态。

image.png

主机地址和端口喜欢用数字打印,且要打印更详细的信息

tcpdump -nvv -c 20

信息量明显多了。 image.png

查看可以捕捉报文的网卡 tcpdump -D

可以看出就一个网卡。果多网卡,那就使用参数-i 指定捕捉的网卡。

image.png

Linux下可以简单观察报文的情况,若干要分析报文,更多的做法是生成一个文件,使用wireshark分析。

生成报文文件 tcpdump -nvv -i eth0 tcp and src host 192.168.0.241 -w /home/tt.cap

看到已经生成了我们需要的捕捉文件,可以拖出来用wireshark打开继续分析了。 image.png