tcpdump和ethereal可以用來獲取和分析網絡通訊活動,他們都是使用libpcap庫來捕獲網絡封包的。
?在混雜模式下他們可以監控網絡適配器的所有通訊活動并捕獲網卡所接收的所有幀。
?要想設置網絡接口為混雜模式并執行這些命令來捕獲所有的網絡封包,需要具有超級用戶的權限。
你可以使用這些工具來探究網絡相關問題。你可以發現TCP/IP重發、窗口大小的縮放、名字解析的問題、網絡配置錯誤等。
?注意這些工具只能監控網絡適配器所接收到的幀,并不能監控到整個網絡的通訊情況。
```
參數介紹:
\-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
```
\## 案例
```
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 host192.168.1.100
```
- 寫在前面
- linux命令行
- 基礎篇
- 1.SSH連接工具
- 2.查看系統版本信息
- 3.查看IP地址
- 4.查看cpu信息
- 5.查看內存磁盤信息
- 6.文件上傳下載
- 7.linux中查找文件(find)
- 8.修改root賬號密碼
- 9.通過進程號查看端口
- 10.校驗MD5值
- 11.Linux命令之seq
- 12.Linux命令之corntab
- 13.linux命令之awk
- 進階篇
- 查看防火墻是否開啟
- linux創建新的用戶
- 更改文件的用戶組
- 查找JAVA_HOME路徑
- Linux主機時間同步
- 高CPU排查-個人總結
- Linux查看GPU性能
- 文件排序工具sort
- sed
- grep
- 實戰篇
- 1.Linux基線
- 2.iptables學習
- 3.Tcpdump抓包命令
- 4.CentOS7更換鏡像源
- shell腳本篇
- 1.Shell腳本速查手冊
- 2.Shell中獲取取昨天和多天前日期
- 3.rsync刪除文件
- 4.nginx自動化安裝腳本
- 5.后臺啟動服務
- 6.備份文件保留5天
- 數據庫
- MySQL數據庫備份命令
- ES數據庫備份
- filebeat工具
- packetbeat工具
- MySQL數據庫中刪除表
- Docker容器
- 1.安裝docker容器
- 2.docker容器的使用
- 3.docker overlay2 是存放什么的
- 4.docker刪除已停止的容器
- 5.docker網卡的IP地址修改
- Ubuntu容器下載vim,curl命令
- docker磁盤占用瞬間變大問題解決
- Python學習
- 安裝python環境
- Python 把代碼編譯成pyc文件