开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情
前文
现在作为一个开发,网络相关的知识是必不可少要学习的。而tcpdump是linux下最流行的网络报抓包工具。 会一手tcpdump抓包,并进行分析,能够对我们解决问题有着事半功倍的效果。
大纲
看起来参数很多,不过实际咱们仅仅了解几个参数的用法就满足了。
使用
参数 -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作为网关的报文
用例
不加参数直接捉包,又是远程情况下,流量过大,不仅得不到你关心的报文,可能都无法停止捕捉。
tcpdump -c 20 捕捉二十个包退出捕捉
效果突下,可以初步观察到网络状态。
主机地址和端口喜欢用数字打印,且要打印更详细的信息
tcpdump -nvv -c 20
信息量明显多了。
查看可以捕捉报文的网卡
tcpdump -D
可以看出就一个网卡。果多网卡,那就使用参数-i 指定捕捉的网卡。
Linux下可以简单观察报文的情况,若干要分析报文,更多的做法是生成一个文件,使用wireshark分析。
生成报文文件
tcpdump -nvv -i eth0 tcp and src host 192.168.0.241 -w /home/tt.cap
看到已经生成了我们需要的捕捉文件,可以拖出来用wireshark打开继续分析了。