tcpdump

一款sniffer工具,是Linux上的抓包工具,嗅探器

補充說明

tcpdump命令 是一款抓包,嗅探器工具,它可以打印所有經過網絡接口的數據包的頭信息,也可以使用-w選項將數據包保存到文件中,方便以後分析。

語法

1tcpdump(選項)

選項

 1-a:嘗試將網絡和廣播地址轉換成名稱;
 2-c<數據包數目>:收到指定的數據包數目後,就停止進行傾倒操作;
 3-d:把編譯過的數據包編碼轉換成可閱讀的格式,並傾倒到標準輸出;
 4-dd:把編譯過的數據包編碼轉換成C語言的格式,並傾倒到標準輸出;
 5-ddd:把編譯過的數據包編碼轉換成十進制數字的格式,並傾倒到標準輸出;
 6-e:在每列傾倒資料上顯示連接層級的文件頭;
 7-f:用數字顯示網際網絡地址;
 8-F<表達文件>:指定內含表達方式的文件;
 9-i<網絡界面>:使用指定的網絡截面送出數據包;
10-l:使用標準輸出列的緩衝區;
11-n:不把主機的網絡地址轉換成名字;
12-N:不列出域名;
13-O:不將數據包編碼最佳化;
14-p:不讓網絡界面進入混雜模式;
15-q :快速輸出,僅列出少數的傳輸協議信息;
16-r<數據包文件>:從指定的文件讀取數據包數據;
17-s<數據包大小>:設置每個數據包的大小;
18-S:用絕對而非相對數值列出TCP關聯數;
19-t:在每列傾倒資料上不顯示時間戳記;
20-tt: 在每列傾倒資料上顯示未經格式化的時間戳記;
21-T<數據包類型>:強制將表達方式所指定的數據包轉譯成設置的數據包類型;
22-v:詳細顯示指令執行過程;
23-vv:更詳細顯示指令執行過程;
24-x:用十六進制字碼列出數據包資料;
25-w<數據包文件>:把數據包數據寫入指定的文件。

實例

直接啓動tcpdump將監視第一個網絡接口上所有流過的數據包

1tcpdump

監視指定網絡接口的數據包

1tcpdump -i eth1

如果不指定網卡,默認tcpdump只會監視第一個網絡接口,一般是eth0,下面的例子都沒有指定網絡接口。

監視指定主機的數據包

打印所有進入或離開sundown的數據包。

1tcpdump host sundown

也可以指定ip,例如截獲所有210.27.48.1 的主機收到的和發出的所有的數據包

1tcpdump host 210.27.48.1

打印helios 與 hot 或者與 ace 之間通信的數據包

1tcpdump host helios and \( hot or ace \)

截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通信

1tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)

打印ace與任何其他主機之間通信的IP 數據包, 但不包括與helios之間的數據包.

1tcpdump ip host ace and not helios

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

1tcpdump ip host 210.27.48.1 and ! 210.27.48.2

抓取eth0網卡上的包,使用:

1sudo tcpdump -i eth0

截獲主機hostname發送的所有數據

1tcpdump -i eth0 src host hostname

監視所有送到主機hostname的數據包

1tcpdump -i eth0 dst host hostname

監視指定主機和端口的數據包

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

1tcpdump tcp port 23 and host 210.27.48.1

對本機的udp 123 端口進行監視 123 爲ntp的服務端口

1tcpdump udp port 123

監視指定網絡的數據包

打印本地主機與Berkeley網絡上的主機之間的所有通信數據包

1tcpdump net ucb-ether

ucb-ether此處可理解爲“Berkeley網絡”的網絡地址,此表達式最原始的含義可表達爲:打印網絡地址爲ucb-ether的所有數據包

打印所有通過網關snup的ftp數據包

1tcpdump 'gateway snup and (port ftp or ftp-data)'

注意:表達式被單引號括起來了,這可以防止shell對其中的括號進行錯誤解析

打印所有源地址或目標地址是本地主機的IP數據包

1tcpdump ip and not net localnet

如果本地網絡通過網關連到了另一網絡,則另一網絡並不能算作本地網絡。

抓取80端口的HTTP報文,以文本形式展示:

1sudo tcpdump -i any port 80 -A

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: