Linux tcpdump

tcpdump 根據(jù)用戶自定義的規(guī)則截取網(wǎng)絡(luò)數(shù)據(jù)包申尼,并輸出內(nèi)容的工具。
它支持針對網(wǎng)絡(luò)層垫桂、協(xié)議师幕、主機、網(wǎng)絡(luò)或端口的過濾伪货,并提供 and们衙、ornot 等邏輯語句來幫助你去掉無用的信息碱呼。

一蒙挑、tcpdump 抓包常用參數(shù)

參數(shù) 說明
-c count 指定要抓取的包數(shù)量,將在接受到 count 個數(shù)據(jù)包后退出
-i interface 指定 tcpdump 需要監(jiān)聽的接口愚臀。默認(rèn)會抓取第一個網(wǎng)絡(luò)接口(接口編號最小的配置可用的)
-F file 使用 file 文件中的抓包規(guī)則進行抓包忆蚀。此時命令行的規(guī)則失效
-s snaplen 設(shè)置 tcpdump 抓數(shù)據(jù)包的長度, 如果不設(shè)置默認(rèn)將會是68字節(jié)
-T type 指定 tcpdump 抓取某種協(xié)議的包。aodv姑裂、cnfp馋袜、rtprtcp舶斧、snmp欣鳖、tftpvat茴厉、wb
-y datalinktype 設(shè)置 tcpdump 只捕獲數(shù)據(jù)鏈路層協(xié)議類型是 datalinktype 的數(shù)據(jù)包

二泽台、tcpdump 輸出常用參數(shù)

參數(shù) 說明
-D 打印系統(tǒng)中所有 tcpdump 可進行抓包的網(wǎng)絡(luò)接口
-q 快速輸出,只輸出較少的信息
-n 用 ip 的方式顯示主機地址
-e 每行的輸出中將包括數(shù)據(jù)包的數(shù)據(jù)鏈路層頭部信息
-L 列出指定網(wǎng)絡(luò)接口所支持的數(shù)據(jù)鏈路層的類型后退出
-O 禁用包匹配時的優(yōu)化代碼矾缓。當(dāng)懷疑某些 bug 是由優(yōu)化代碼引起時可以使用
-w file 把數(shù)據(jù)寫入文件怀酷。 這些包數(shù)據(jù)可在隨后通過 -r 命令來進行分析和打印
-W filecount -C file_size 一起使用,限制打開的文件數(shù)量, 并且當(dāng)文件數(shù)超過 filecount 設(shè)置的限制時嗜闻,次循環(huán)替代之前的文件
-C file_size 將 tcpdump 抓取的數(shù)據(jù)保存到文件中蜕依。當(dāng)文件大于 file_size 時,創(chuàng)建新的記錄文件琉雳。與 -w file 一起使用
-r file 讀取 -w file 中生成的文件样眠。使用 "-" 表示從標(biāo)準(zhǔn)輸入中讀取。
-t 在每行輸出中不打印時間戳
-tt 不對每行輸出的時間進行格式處理
-ttt tcpdump 輸出時, 每兩行打印之間會延遲一個段時間(以毫秒為單位)
-tttt 在每行打印的時間戳之前添加日期的打印
-X tcpdump 會打印每個包的頭部數(shù)據(jù), 同時會以16進制和ASCII碼形式打印出每個包的數(shù)據(jù)
-XX -X 的基礎(chǔ)上增加數(shù)據(jù)鏈路層的頭部信息
-v 產(chǎn)生詳細的輸出翠肘,如:生存時間吹缔、標(biāo)識、總長度等。-vv-vvv 一個比一個內(nèi)容多
-d 將匹配信息包的代碼用匯編格式顯示
-dd 將匹配信息包的代碼用C語言程序段格式顯示
-ddd 將匹配信息包的代碼用十進制格式顯示

三候齿、表達式

表達式用于篩選輸出哪些類型的數(shù)據(jù)包郊闯,如果沒有給定表達式,所有的數(shù)據(jù)包都將輸出晚碾。
表達式由一個或多個表達元組成(表達元:組成表達式的基本元素)。
一個表達元通常由一個或多個修飾符喂急,后跟一個名字或數(shù)字組成格嘁。
有三種不同類型的修飾符:typedir 以及 proto廊移。

修飾符 說明 示例
type 指定抓取類型糕簿。默認(rèn)為 host
type
??????????host: 表示主機地址
??????????net:網(wǎng)絡(luò)
??????????port:端口
??????????portrange:端口范圍


host 128.34.1.10
net 128.3
port 20
portrange 5000-6000
dir 指定抓取數(shù)據(jù)包方向探入。默認(rèn)為 src or dst
dir:
??????????src: 源地址
??????????dst:目標(biāo)地址
??????????src or dst:源地址或目標(biāo)地址
??????????src and dst:源地址且目標(biāo)地址
src 172.12.45.2:表示源主機為 172.12.45.2 的數(shù)據(jù)包
dst net 128.3:表示目標(biāo)網(wǎng)絡(luò)為128.3的數(shù)據(jù)包
src or dst port 22:表示源或目的端口為22的數(shù)據(jù)包
src and dst port 22:表示源且目的端口為22的數(shù)據(jù)包
proto 指定抓取數(shù)據(jù)包協(xié)議類型
proto
??????????wlan:無線局域網(wǎng)協(xié)議
??????????ip:ipv4 協(xié)議
??????????ip6:ipv6協(xié)議
??????????arp:地址解析協(xié)議
??????????rarp:反向地址解析協(xié)議
??????????decnet:機器互聯(lián)的網(wǎng)絡(luò)協(xié)議
??????????tcp
??????????upd
ether src 145.23.34.33:從以太網(wǎng)地址 145.23.34.33 來的數(shù)據(jù)包
arp net 128.3:發(fā)往或來自128.3 網(wǎng)絡(luò)的 arp 協(xié)議數(shù)據(jù)包
tcp port 21:發(fā)送或接收端口為 21 的 tcp 協(xié)議數(shù)據(jù)包
udp portrange 7000-7009:發(fā)送或接收端口范圍為 7000-7009 的 udp 協(xié)議數(shù)據(jù)包

四、示例

1. 抓取指定網(wǎng)卡數(shù)據(jù)包

不指定網(wǎng)卡默認(rèn)是第一個

root@test-physical:~# tcpdump -i eth2
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes
09:49:32.521925 IP 172.16.245.1 > 172.16.245.153: ICMP echo request, id 62819, seq 0, length 64
09:49:32.521942 IP 172.16.245.153 > 172.16.245.1: ICMP echo reply, id 62819, seq 0, length 64
2. 抓取指定 host 的數(shù)據(jù)包
root@test-physical:~# tcpdump host 172.16.245.1
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
14:24:39.166981 IP 172.16.245.145.ssh > 172.16.245.1.62592: Flags [P.], seq 2121937010:2121937198, ack 564783646, win 315, options [nop,nop,TS val 297485967 ecr 2044646503], length 188
14:24:39.167281 IP 172.16.245.1.62592 > 172.16.245.145.ssh: Flags [.], ack 188, win 2045, options [nop,nop,TS val 2044646913 ecr 297485967], length 0
3. 抓取 hostA 和 hostB 之間或 hostA 和 hostC 之間的通訊

tcpdump host hostA and \(hostB or hostC \)

root@test-physical:~# tcpdump host 172.16.245.1 and \(172.16.245.145 or 172.16.245.146\)
4. 抓取 hostA 與所有主機之間的通訊懂诗,但是不包括 hostB

tcpdump ip host hostA and not hostB

root@test-physical:~# tcpdump ip host 172.16.245.1 and not 172.16.245.145
5. 抓取指定源地址或 IP 的數(shù)據(jù)包

tcpdump src host hostname
抓取源地址是 baidu.com 的數(shù)據(jù)包

root@test-physical:~# tcpdump src host baidu.com
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
14:46:33.484762 IP 220.181.38.148 > 172.16.245.153: ICMP echo reply, id 38286, seq 1, length 64
14:46:34.487862 IP 220.181.38.148 > 172.16.245.153: ICMP echo reply, id 38286, seq 2, length 64
14:46:35.491003 IP 220.181.38.148 > 172.16.245.153: ICMP echo reply, id 38286, seq 3, length 64
6. 抓取指定目標(biāo)地址或 IP 的數(shù)據(jù)包

tcpdump dst host hostname
抓取目標(biāo)地址是 baidu.com 的數(shù)據(jù)包

root@test-physical:~# tcpdump dst host baidu.com
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
14:41:32.028922 IP 172.16.245.153 > 220.181.38.148: ICMP echo request, id 38241, seq 1, length 64
14:41:33.030989 IP 172.16.245.153 > 220.181.38.148: ICMP echo request, id 38241, seq 2, length 64
14:41:34.034075 IP 172.16.245.153 > 220.181.38.148: ICMP echo request, id 38241, seq 3, length 64
7. 抓取指定端口和主機的數(shù)據(jù)包

tcpdump tcp port portNumber and host hostname

root@test-physical:~# tcpdump -i eth0 port 80 and host www.baidu.com
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
15:00:55.976759 IP 192.168.50.145.51677 > 61.135.169.121.443: Flags [F.], seq 3695524080, ack 157044170, win 4096, length 0
15:00:55.976789 IP 192.168.50.145.51676 > 61.135.169.125.443: Flags [F.], seq 1010083189, ack 1311922281, win 4096, length 0
15:00:55.976822 IP 192.168.50.145.51675 > 61.135.169.121.443: Flags [F.], seq 1355311995, ack 556334558, win 4096, length 0
8. 抓取指定網(wǎng)絡(luò)的數(shù)據(jù)包

tcpdump -c count net netIP
抓取本機與 172.16 網(wǎng)段通信的 10 個數(shù)據(jù)包

root@test-physical:~# tcpdump -c 10 net 172.16
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
15:03:54.887095 IP 172.16.245.145.ssh > 172.16.245.1.62592: Flags [P.], seq 2240238270:2240238458, ack 564887890, win 315, options [nop,nop,TS val 298074897 ecr 2046987344], length 188
15:03:54.887189 IP 172.16.245.1.62592 > 172.16.245.145.ssh: Flags [.], ack 188, win 2045, options [nop,nop,TS val 2046987853 ecr 298074897], length 0
15:03:54.887510 IP 172.16.245.153.42352 > public1.114dns.com.domain: 52224+ PTR? 1.245.16.172.in-addr.arpa. (43)
15:03:55.322557 ARP, Request who-has 172.16.245.153 tell 172.16.245.2, length 46
15:03:55.322578 ARP, Reply 172.16.245.153 is-at 00:0c:29:4b:87:05 (oui Unknown), length 28
15:03:55.322652 IP 118.144.77.165.4506 > 172.16.245.153.54822: Flags [R.], seq 3084328717, ack 449394572, win 64240, length 0
15:03:57.577262 IP 172.16.245.1 > 172.16.245.145: ICMP echo request, id 14029, seq 0, length 64
15:04:14.911573 IP 172.16.245.145.ssh > 172.16.245.1.62592: Flags [P.], seq 188:560, ack 1, win 315, options [nop,nop,TS val 298079903 ecr 2046987853], length 372
15:04:14.911641 IP 172.16.245.153.38782 > public1.114dns.com.domain: 28450+ PTR? 114.114.114.114.in-addr.arpa. (46)
15:04:24.940290 IP 172.16.245.145.ssh > 172.16.245.1.62592: Flags [P.], seq 560:708, ack 1, win 315, options [nop,nop,TS val 298082410 ecr 2047007856], length 148
10 packets captured
37 packets received by filter
25 packets dropped by kernel
9. 抓取 ICMP 包蜂嗽。ping包

tcpdump -i networkCard icmp

root@test-physical:~# tcpdump -i eth0 icmp

指定某主機對本機的 ping 包

root@test-physical:~# tcpdump -i eth0 icmp and src 172.16.245.145
10. 抓包并保存到指定文件

tcpdump -i networkCard -c count -w filePath
抓取的數(shù)據(jù)包保存到 /var/log/tcpdump.log 文件中,當(dāng)抓取100個數(shù)據(jù)包后就退出程序

root@test-physical:~# tcpdump -i eth0 -c 100 -w /var/log/tcpdump.log
11. 讀取抓包保存文件

tcpdump -i networkCard -r filePath
/var/log/tcpdump.log 中讀取 tcp 協(xié)議的數(shù)據(jù)包

root@test-physical:~# tcpdump -i eth0 -r /var/log/tcpdump.log

讀取文件中 host 是 172.16.245.145 的數(shù)據(jù)包

root@test-physical:~# tcpdump -i eth0 -r /var/log/tcpdump.logl host 172.16.245.145
12. 抓取多播并數(shù)據(jù)包

tcpdump -i networkCard ether multicast

root@test-physical:~# tcpdump -i ech0 ether multicast
13.解析數(shù)據(jù)包
root@test-physical:~# tcpdump -c 2 -q -XX -vvv -nn -i eth0 tcp dst port 22
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
15:10:54.514308 IP (tos 0x48, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 52)
    172.16.245.1.62592 > 172.16.245.145.22: tcp 0
    0x0000:  000c 294b 8705 0050 56c0 0008 0800 4548  ..)K...PV.....EH
    0x0010:  0034 0000 4000 4006 f7c7 ac10 f501 ac10  .4..@.@.........
    0x0020:  f591 f480 0016 21ab 8aae 8587 68d2 8010  ......!.....h...
    0x0030:  07fe 4049 0000 0101 080a 7a08 f3cc 11c5  ..@I......z.....
    0x0040:  dcdc                                     ..
15:10:54.514643 IP (tos 0x48, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 52)
    172.16.245.1.62592 > 172.16.245.145.22: tcp 0
    0x0000:  000c 294b 8705 0050 56c0 0008 0800 4548  ..)K...PV.....EH
    0x0010:  0034 0000 4000 4006 f7c7 ac10 f501 ac10  .4..@.@.........
    0x0020:  f591 f480 0016 21ab 8aae 8587 6ad6 8010  ......!.....j...
    0x0030:  07f7 3e4c 0000 0101 080a 7a08 f3cc 11c5  ..>L......z.....
    0x0040:  dcdc                                     ..
2 packets captured
2 packets received by filter
0 packets dropped by kernel
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末殃恒,一起剝皮案震驚了整個濱河市植旧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌离唐,老刑警劉巖病附,帶你破解...
    沈念sama閱讀 212,185評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異亥鬓,居然都是意外死亡完沪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,445評論 3 385
  • 文/潘曉璐 我一進店門嵌戈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丽焊,“玉大人,你說我怎么就攤上這事咕别〖冀。” “怎么了?”我有些...
    開封第一講書人閱讀 157,684評論 0 348
  • 文/不壞的土叔 我叫張陵惰拱,是天一觀的道長雌贱。 經(jīng)常有香客問我,道長偿短,這世上最難降的妖魔是什么欣孤? 我笑而不...
    開封第一講書人閱讀 56,564評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮昔逗,結(jié)果婚禮上降传,老公的妹妹穿的比我還像新娘。我一直安慰自己勾怒,他們只是感情好婆排,可當(dāng)我...
    茶點故事閱讀 65,681評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著笔链,像睡著了一般段只。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鉴扫,一...
    開封第一講書人閱讀 49,874評論 1 290
  • 那天赞枕,我揣著相機與錄音,去河邊找鬼。 笑死炕婶,一個胖子當(dāng)著我的面吹牛姐赡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柠掂,決...
    沈念sama閱讀 39,025評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼项滑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了陪踩?” 一聲冷哼從身側(cè)響起杖们,我...
    開封第一講書人閱讀 37,761評論 0 268
  • 序言:老撾萬榮一對情侶失蹤悉抵,失蹤者是張志新(化名)和其女友劉穎肩狂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姥饰,經(jīng)...
    沈念sama閱讀 44,217評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡傻谁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,545評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了列粪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片审磁。...
    茶點故事閱讀 38,694評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖岂座,靈堂內(nèi)的尸體忽然破棺而出态蒂,到底是詐尸還是另有隱情,我是刑警寧澤费什,帶...
    沈念sama閱讀 34,351評論 4 332
  • 正文 年R本政府宣布钾恢,位于F島的核電站,受9級特大地震影響鸳址,放射性物質(zhì)發(fā)生泄漏瘩蚪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,988評論 3 315
  • 文/蒙蒙 一稿黍、第九天 我趴在偏房一處隱蔽的房頂上張望疹瘦。 院中可真熱鬧,春花似錦巡球、人聲如沸言沐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,778評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呢灶。三九已至,卻和暖如春钉嘹,著一層夾襖步出監(jiān)牢的瞬間鸯乃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,007評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留缨睡,地道東北人鸟悴。 一個月前我還...
    沈念sama閱讀 46,427評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像奖年,于是被迫代替她去往敵國和親细诸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,580評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 簡介 用簡單的話來定義tcpdump陋守,就是:dump the traffic on a network震贵,根據(jù)使用者...
    保川閱讀 5,947評論 1 13
  • 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a network水评,根據(jù)使用者...
    JasonShi6306421閱讀 1,231評論 0 1
  • tcpdump采用命令行方式對接口的數(shù)據(jù)包進行篩選抓取猩系,其豐富特性表現(xiàn)在靈活的表達式上。 不帶任何選項的tcpdu...
    SkTj閱讀 413評論 0 0
  • tcpdump抓包命令 tcpdump是一個用于截取網(wǎng)絡(luò)分組中燥,并輸出分組內(nèi)容的工具寇甸。tcpdump憑借強大的功能和...
    Yihulee閱讀 14,053評論 0 3
  • 前言 tcpdump 是一個很常用的網(wǎng)絡(luò)包分析工具,可以用來顯示通過網(wǎng)絡(luò)傳輸?shù)奖鞠到y(tǒng)的 TCP/IP 以及其他網(wǎng)絡(luò)...
    王奧OX閱讀 39,758評論 0 12