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
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。