目錄
參考鏈接:https://man.linuxde.net/tcpdump
tcpdump 官網:https://www.tcpdump.org/manpages/tcpdump.1.html
命令簡介
tcpdump命令是一款sniffer工具,它可以打印所有經過網絡接口的數據包的頭信息,也可以使用-w
選項將數據包保存到文件中,方便以後分析。
一般安裝 Linux 都會自帶 tcpdump 命令,但是通常都需要 root 權限才能執行
tcpdump 的語法格式:
tcpdump [選項]
常用選項:
-a:嘗試將網絡和廣播地址轉換成名稱; -c<數據包數目>:收到指定的數據包數目後,就停止進行傾倒操作; -d:把編譯過的數據包編碼轉換成可閱讀的格式,並傾倒到標準輸出; -dd:把編譯過的數據包編碼轉換成C語言的格式,並傾倒到標準輸出; -ddd:把編譯過的數據包編碼轉換成十進制數字的格式,並傾倒到標準輸出; -e:在每列傾倒資料上顯示連接層級的文件頭; -f:用數字顯示網際網絡地址; -F<表達文件>:指定內含表達方式的文件; -i<網絡界面>:使用指定的網絡截面送出數據包; -l:使用標準輸出列的緩衝區; -n:不把主機的網絡地址轉換成名字; -N:不列出域名; -O:不將數據包編碼最佳化; -p:不讓網絡界面進入混雜模式; -q :快速輸出,僅列出少數的傳輸協議信息; -r <數據包文件>:從指定的文件讀取數據包數據; -s <數據包大小>:設置每個數據包的大小; -S:用絕對而非相對數值列出TCP關聯數; -t:在每列傾倒資料上不顯示時間戳記; -tt: 在每列傾倒資料上顯示未經格式化的時間戳記; -T<數據包類型>:強制將表達方式所指定的數據包轉譯成設置的數據包類型; -v:詳細顯示指令執行過程; -vv:更詳細顯示指令執行過程; -x:用十六進制字碼列出數據包資料; -w <數據包文件>:把數據包數據寫入指定的文件。 |
常用命令
- 抓取指定IP發出和接收到的包
tcpdump host 210.27.48.1
- 抓取指定端口的包
tcpdump port 80
- 抓取指定協議的包
tcpdump tcp
- 將抓取到的包保存成文件
tcpdump ip host 11.24.225.206 -w log.cap
** .cap 是文件類型,這種類型的文件可以用 Wireshark 方便地進行解析
如果想要快速查看 log.cap 中的內容,可以使用 strings log.cap 命令來查看
- 限定來源和目的地址
tcpdump src host 192.168.1.101
tcpdump dst host 192.168.1.101
- 限制抓包個數
tcpdump -c 1000
- and/or 組合多個限制條件
tcpdump ip host 192.168.1.102 and 192.168.1.103 // 查詢兩個主機之間的通信
tcpdump src 192.168.122.98 and port 80 // 同時限定IP和端口
tcpdump port 443 and "(src 192.168.122.98 or src 106.11.31.214)"
綜合示例
tcpdump port 443 and "(src 192.168.122.98 or src 106.11.31.214)" -c 100 -w log.cap