日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

tcpdump 是linux系統下的一個強大的命令,可以將網絡中傳送的數據包完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。

本教程對tcpdump命令使用進行講解說明,通過本教程您可以學會linux系統下使用tcpdump命令進行網絡抓包,實現對數據包進行捕獲分析。

tcpdump 命令格式介紹

首先我們對Linux系統下tcpdump命令格式進行一個介紹說明,在下面的使用教程中講到tcpdump命令示例時,您就可以參考tcpdump命令參數說明進行學習。

該命令示例在centos release 6.10 (Final) 中tcpdump演示

語法:

tcpdump [ -AdDefIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]

[ -C file_size ] [ -G rotate_seconds ] [ -F file ]

[ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]

[ -Q|-P in|out|inout ]

[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]

[ -W filecount ]

[ -E spi@ipaddr algo:secret,... ]

[ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]

[ expression ]

命令行參數介紹:

  • -A 以ASCII格式打印出所有分組,并將鏈路層的頭最小化。
  • -c 在收到指定的數量的分組后,tcpdump就會停止。
  • -C 在將一個原始分組寫入文件之前,檢查文件當前的大小是否超過了參數file_size
  • 中指定的大小。如果超過了指定大小,則關閉當前文件,然后在打開一個新的文件。參數 file_size
  • 的單位是兆字節(是1,000,000字節,而不是1,048,576字節)。
  • -d 將匹配信息包的代碼以人們能夠理解的匯編格式給出。
  • -dd 將匹配信息包的代碼以C語言程序段的格式給出。
  • -ddd 將匹配信息包的代碼以十進制的形式給出。
  • -D 打印出系統中所有可以用tcpdump截包的網絡接口。
  • -e 在輸出行打印出數據鏈路層的頭部信息。
  • -E 用spi@ipaddr algo:secret解密那些以addr作為地址,并且包含了安全參數索引值spi的IPsec ESP分組。
  • -f 將外部的Internet地址以數字的形式打印出來。
  • -F 從指定的文件中讀取表達式,忽略命令行中給出的表達式。
  • -i 指定監聽的網絡接口。
  • -l 使標準輸出變為緩沖行形式。
  • -L 列出網絡接口的已知數據鏈路。
  • -m 從文件module中導入SMI MIB模塊定義。該參數可以被使用多次,以導入多個MIB模塊。
  • -M 如果tcp報文中存在TCP-MD5選項,則需要用secret作為共享的驗證碼用于驗證TCP-MD5選選項摘要(詳情可參考RFC 2385)。
  • -n 不把網絡地址轉換成名字。
  • -N 不輸出主機名中的域名部分。例如,link.linux265.com 只輸出link。
  • -t 在輸出的每一行不打印時間戳。
  • -O 不運行分組分組匹配(packet-matching)代碼優化程序。
  • -P 不將網絡接口設置成混雜模式。
  • -q 快速輸出。只輸出較少的協議信息。
  • -r 從指定的文件中讀取包(這些包一般通過-w選項產生)。
  • -S 將tcp的序列號以絕對值形式輸出,而不是相對值。
  • -s 從每個分組中讀取最開始的snaplen個字節,而不是默認的68個字節。
  • -T 將監聽到的包直接解釋為指定的類型的報文,常見的類型有rpc遠程過程調用)和snmp(簡單網絡管理協議;)。
  • -t 不在每一行中輸出時間戳。
  • -tt 在每一行中輸出非格式化的時間戳。
  • -ttt 輸出本行和前面一行之間的時間差。
  • -tttt 在每一行中輸出由date處理的默認格式的時間戳。
  • -u 輸出未解碼的NFS句柄。
  • -v 輸出一個稍微詳細的信息,例如在ip包中可以包括ttl和服務類型的信息。
  • -vv 輸出詳細的報文信息。
  • -w 直接將分組寫入文件中,而不是不分析并打印出來。
  • -x 以16進制數形式顯示每一個報文 (去掉鏈路層報頭) . 可以顯示較小的完整報文, 否則只顯示snaplen個字節.
  • -xx 以16進制數形式顯示每一個報文(包含鏈路層包頭)。
  • -X 以16進制和ASCII碼形式顯示每個報文(去掉鏈路層報頭)。
  • -XX 以16進制和ASCII嗎形式顯示每個報文(包含鏈路層報頭)。
  • -y 設置tcpdump 捕獲數據鏈路層協議類型
  • -Z 使tcpdump 放棄自己的超級權限(如果以root用戶啟動tcpdump, tcpdump將會有超級用戶權限), 并把當前tcpdump的用戶ID設置為user, 組ID設置為user首要所屬組的ID

tcpdump 命令使用示例

linux系統下執行tcpdump命令需要root賬號或者具備sudo權限的賬號,否則執行tcpdump命令說,系統會提示tcpdump: no suitable device found。

在下面的例子中,-i eth0 參數表示只抓取 eth0 接口數據包,不加-i eth0 是表示抓取所有的接口包括 lo。

01、抓取所有網絡包,并在terminal中顯示抓取的結果,將包以十六進制的形式顯示。

tcpdump

02、抓取所有的網絡包,并存到 result.cap 文件中。

tcpdump -w result.cap

03、抓取所有的經過eth0網卡的網絡包,并存到result.cap 文件中。

tcpdump -i eth0 -w result.cap

04、抓取源地址是192.168.1.100的包,并將結果保存到 result.cap 文件中。

tcpdump src host 192.168.1.100 -w result.cap

05、抓取地址包含是192.168.1.100的包,并將結果保存到 result.cap 文件中。

tcpdump host 192.168.1.100 -w result.cap

06、抓取目的地址包含是192.168.1.100的包,并將結果保存到 result.cap 文件中。

tcpdump dest host 192.168.1.100 -w result.cap

07、抓取主機地址為 192.168.1.100 的數據包

tcpdump -i eth0 -vnn host 192.168.1.100

08、抓取包含192.168.1.0/24網段的數據包

tcpdump -i eth0 -vnn net 192.168.1.0/24

09、抓取網卡eth0上所有包含端口22的數據包

tcpdump -i eth0 -vnn port 22

10、抓取指定協議格式的數據包,協議格式可以是「udp,icmp,arp,ip」中的任何一種,例如以下命令:

tcpdump udp -i eth0 -vnn

11、抓取經過 eth0 網卡的源 ip 是 192.168.1.100 數據包,src參數表示源。

tcpdump -i eth0 -vnn src host 192.168.1.100

12、抓取經過 eth0 網卡目的 ip 是 192.168.1.100 數據包,dst參數表示目的。

tcpdump -i eth0 -vnn dst host 192.168.1.100

13、抓取源端口是22的數據包

tcpdump -i eth0 -vnn src port 22

14、抓取源ip是 192.168.1.100 且目的ip端口是22的數據包

tcpdump -i eth0 -vnn src host 192.168.1.100 and dst port 22

15、抓取源ip``192.168.1.100``22

tcpdump -i eth0 -vnn src host 192.168.1.100 or port 22

16、抓取源ip``192.168.1.100``22

tcpdump -i eth0 -vnn src host 192.168.1.100 and not port 22

17、抓取源ip是192.168.1.100且目的端口是22,或源ip是192.168.1.102且目的端口是80的數據包。

tcpdump -i eth0 -vnn ( src host 192.168.1.100 and dst port 22 ) or ( src host 192.168.1.102 and dst port 80 )

18、把抓取的數據包記錄存到/tmp/result文件中,當抓取100個數據包后就退出程序。

tcpdump –i eth0 -vnn -w /tmp/result -c 100

19、從/tmp/result記錄中讀取tcp協議的數據包

tcpdump -i eth0 tcp -vnn -r /tmp/result

20、想要截獲所有192.168.1.100的主機收到的和發出的所有的數據包:

tcpdump host 192.168.1.100

21、如果想要獲取主機192.168.1.100除了和主機192.168.1.101之外所有主機通信的ip包,使用命令:

tcpdump ip host 192.168.1.100 and ! 192.168.1.101

22、如果想要獲取主機 192.168.1.100 接收或發出的 telnet 包,使用如下命令:

tcpdump tcp port 23 host 192.168.1.100

寫在最后

至此,本Linux系統 tcpdump 抓包命令使用教程已經講解完,本教程中更多的只是一些簡單的示例,如果希望更復雜的抓取,可以參考tcpdump抓包命令命令格式進行學習使用。

原文來自:https://www.jianshu.com/p/8efc09c8e0c7

分享到:
標簽:tcpdump
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定