tcpdump 描述
- 通俗地说:tcpdump是一个抓包工具,用于抓取互联网上传输的数据包。
- 学术的说:tcpdump是一种嗅探器 (sniffer),利用以太网的特性,通过将网卡适配器 (NIC)置于混杂模式 (promiscuous) 来获取传输在网络中的信息包。
tcpdump 抓包
要用tcpdump抓包,一定要切换到root用户下,因为只要root用户才有权限将网卡变更为适于抓包的“混杂模式”。
[root@test ~]# tcpdump -i ens39 -nn -X 'port 22' -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens39, link-type EN10MB (Ethernet), capture size 262144 bytes
13:36:18.464141 IP 192.168.146.6.51804 > 192.168.146.131.22: Flags [P.], seq 2883801012:2883801064, ack 608128543, win 4104, length 52
0x0000: 4500 005c 3966 4000 8006 1b5b c0a8 9206 E..\9f@....[....
0x0010: c0a8 9283 ca5c 0016 abe3 4fb4 243f 4e1f .....\....O.$?N.
0x0020: 5018 1008 8dd8 0000 0000 0010 30e5 6bcb P...........0.k.
0x0030: f460 869b 1825 2cfe 6f36 1827 80bd 10de .`...%,.o6.'....
0x0040: c70c 5124 2e45 aa50 9a31 3415 e3a1 2b6f ..Q$.E.P.14...+o
0x0050: 8942 0d3f 5a9b 84e9 f729 824b .B.?Z....).K
1 packet captured
2 packets received by filter
0 packets dropped by kernel
命令解析:
- -i : 即interface,用来指定网络接口,指定监控的网卡。
- -nn : 当tcpdump遇到协议号或端口号时,不要将这些数字转换成对应的协议名称或端口名称。比如:希望显示 22 ,而不是 ssh。
- -X :需要把协议头和包内容都原原本本地显示出来,tcpdump会同时以16进制和ASCII的形式显示,这在进行协议分析时是绝对的利器。
- port 22 : 只抓取源端口或目的端口是22的数据包,其他的数据包就不要显示出来。
- -c : 是Count含义,设置抓取的包数。