tcpdump用於捕獲和分析網路流量。系統管理員可以使用它來檢視實時流量或將輸出儲存到檔案中並在以後進行分析。下面列出6個常用選項
基於 TCP 標誌的過濾器
可以根據各種 tcp 標誌過濾 TCP 流量。這是一個基於標誌的過濾示例。
格式化輸出內容
tcpdump 還可以透過對十六進位制使用 選項或對 ASCII 使用 選項來調整輸出格式。
[root@localhost ~]# tcpdump -i any -c3 -X
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
16:37:30。318137 IP localhost。localdomain。ssh > 192。168。43。1。39970: Flags [P。], seq 725376559:725376803, ack 1854460843, win 1842, length 244
0x0000: 4548 011c 0faf 4000 4006 5210 c0a8 2b83 EH。。。。@。@。R。。。+。
0x0010: c0a8 2b01 0016 9c22 2b3c 5e2f 6e88 d3ab 。。+。。。。“+
0x0020: 5018 0732 d8e3 0000 0000 00d0 d1ce 67d9 P。。2……。。。。g。
0x0030: b8e9 5171 dd56 bfbb 2d3e 7ce7 9a9b 60a5 。。Qq。V。。->|。。。`。
0x0040: 152d 4295 9f8f d6ba dec2 895e 3921 2d76 。-B……。。^9!-v
0x0050: c5c6 5b6b 7161 61eb 0b30 1eae b622 2f14 。。[kqaa。。0。。。”/。
0x0060: dfe5 0afc b91a 8a16 e3f1 62ae df5a 6728 ……。。。。b。。Zg(
0x0070: 4b9f 942d b762 a178 9d5e 5f70 96c2 fbad K。。-。b。x。^_p。。。。
0x0080: 53f3 1bc5 80da 0e14 394c e31b 6b6a 02fc S……。9L。。kj。。
0x0090: 203e 9a22 75c3 02ea c8d5 a2ec 5d30 60db 。>。“u……。]0`。
0x00a0: 64bf 4819 f2d4 ae88 c593 3b0c 90a2 273d d。H……。;。。。‘=
0x00b0: 8f42 bf91 27bf b324 4f5f aec6 5d57 c27f 。B。。’。。$O_。。]W。。
0x00c0: 3c72 77de 6da5 97b9 52e8 7695 a964 d2a2
16:37:30。318540 IP localhost。localdomain。50573 > _gateway。domain: 47072+ PTR? 1。43。168。192。in-addr。arpa。 (43)
0x0000: 4500 0047 a7e5 4000 4011 baea c0a8 2b83 E。。G。。@。@。。。。。+。
0x0010: c0a8 2b02 c58d 0035 0033 d81a b7e0 0100 。。+。。。。5。3……
0x0020: 0001 0000 0000 0000 0131 0234 3303 3136 ……。。。1。43。16
0x0030: 3803 3139 3207 696e 2d61 6464 7204 6172 8。192。in-addr。ar
0x0040: 7061 0000 0c00 01 pa。。。。。
16:37:30。318743 IP 192。168。43。1。39970 > localhost。localdomain。ssh: Flags [。], ack 244, win 4103, length 0
0x0000: 4500 0028 538d 4000 8006 cf6d c0a8 2b01 E。。(S。@。。。。m。。+。
0x0010: c0a8 2b83 9c22 0016 6e88 d3ab 2b3c 5f23 。。+。。”。。n。。。+
0x0020: 5010 1007 5f2c 0000 0000 0000 0000 P。。。_,……。。
3 packets captured
9 packets received by filter
0 packets dropped by kernel
使用選項,將顯示 ASCII字元。
詳細資訊輸出
使用 、 或 來提供不同級別的詳細資訊。
下面是預設輸出:
下面是使用選項:
下面是使用選項:
下面是使用選項:
按照協議過濾
可以使用協議名稱來過濾特定協議的資料包。下面是過濾出UDP協議的資料包:
[root@localhost ~]# tcpdump udp -i any -c3 -nn
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
19:57:15。123051 IP 192。168。43。131。55682 > 192。168。0。12。123: NTPv4, Client, length 48
19:57:15。124002 IP 192。168。0。12。123 > 192。168。43。131。55682: NTPv4, Server, length 48
19:57:41。494061 IP 192。168。43。131。68 > 192。168。43。254。67: BOOTP/DHCP, Request from 00:0c:29:71:df:91, length 276
3 packets captured
3 packets received by filter
0 packets dropped by kernel
下面是過濾出TCP協議的埠為443的資料包:
下面例項是篩選出不包括和型別的icmp資料包:
[root@localhost ~]# tcpdump ‘icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply’ -c4
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens160, link-type EN10MB (Ethernet), capture size 262144 bytes
14:57:47。675667 IP localhost。localdomain > 192。168。43。1: ICMP host localhost。localdomain unreachable - admin prohibited filter, length 68
14:57:48。677588 IP localhost。localdomain > 192。168。43。1: ICMP host localhost。localdomain unreachable - admin prohibited filter, length 68
14:57:49。680887 IP localhost。localdomain > 192。168。43。1: ICMP host localhost。localdomain unreachable - admin prohibited filter, length 68
14:57:50。686504 IP localhost。localdomain > 192。168。43。1: ICMP host localhost。localdomain unreachable - admin prohibited filter, length 68
4 packets captured
4 packets received by filter
0 packets dropped by kernel
-q 選項簡化輸出資訊
如果想要簡化輸出內容,請使用 選項更快速、安靜的輸出。
[root@localhost ~]# tcpdump -i any -c5 -q
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
15:00:26。440699 IP localhost。localdomain。ssh > 192。168。43。1。55202: tcp 244
15:00:26。441052 IP localhost。localdomain。39876 > _gateway。domain: UDP, length 43
15:00:26。441220 IP 192。168。43。1。55202 > localhost。localdomain。ssh: tcp 0
15:00:26。447406 IP _gateway。domain > localhost。localdomain。39876: UDP, length 78
15:00:26。447835 IP localhost。localdomain。41058 > _gateway。domain: UDP, length 45
5 packets captured
9 packets received by filter
0 packets dropped by kernel
時間戳選項
下面是列印時間戳的一些常見選項。
移除時間戳
使用選項刪除時間戳:
可以看到每行資料最前面不顯示時間戳了。
輸出本行和前一行的時間差,而不是時間
下面例子使用選項,顯示了6行icmp資料包,可以看到每行之間的時間差:
[root@localhost ~]# tcpdump icmp -i any -c6 -ttt -nn
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
00:00:00。000000 IP 192。168。43。131 > 172。16。1。5: ICMP echo request, id 2986, seq 1, length 64
00:00:00。251269 IP 172。16。1。5 > 192。168。43。131: ICMP echo reply, id 2986, seq 1, length 64
00:00:00。749532 IP 192。168。43。131 > 172。16。1。5: ICMP echo request, id 2986, seq 2, length 64
00:00:00。253396 IP 172。16。1。5 > 192。168。43。131: ICMP echo reply, id 2986, seq 2, length 64
00:00:00。747521 IP 192。168。43。131 > 172。16。1。5: ICMP echo request, id 2986, seq 3, length 64
00:00:01。051634 IP 192。168。43。131 > 172。16。1。5: ICMP echo request, id 2986, seq 4, length 64
6 packets captured
6 packets received by filter
0 packets dropped by kernel
總結
tcpdump 用於收集有關網路流量資料的出色工具。資料包捕獲為故障排除和安全分析提供了有用的資訊。
END