tcpdump

panda4671發表於2024-03-20

tcpdump 是一款強大的網路協議分析器,用於捕獲和分析網路流量

安裝必要的package
apt-get update
apt-get install tcpdump (ubuntu用apt-get, centos用yum; cat /etc/os-release可以檢視作業系統)
apt-get install net-tools

基本的 tcpdump 使用方法及其引數:
1.基本抓包:sudo tcpdump
這將監聽預設網路介面的所有流量。通常需要使用 sudo 或其他形式的管理員許可權執行,因為它需要訪問底層網路介面。
2. 指定網路介面:sudo tcpdump -i [interface]
指定要監聽的網路介面,例如:sudo tcpdump -i eth0
3. 按 IP 地址過濾:sudo tcpdump host [ip_address]
只捕獲與指定 IP 地址相關的流量:sudo tcpdump host 192.168.1.100
4. 按埠過濾:sudo tcpdump port [port_number]
捕獲指定埠的流量:sudo tcpdump port 80
5. 按協議過濾:sudo tcpdump proto [protocol]
捕獲特定協議的流量,例如 HTTP:sudo tcpdump proto http
6. 按布林表示式過濾:sudo tcpdump 'expression'
使用布林表示式進行復雜過濾,例如捕獲特定方向的 HTTP GET 請求:sudo tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and dst port 80'
7. 儲存捕獲的資料到檔案:sudo tcpdump -w [output_file]
將捕獲的資料儲存到 pcap 檔案中:sudo tcpdump -w capture.pcap
8. 從檔案中讀取並顯示捕獲的資料:sudo tcpdump -r [capture_file]
從 pcap 檔案中讀取並顯示捕獲的資料:sudo tcpdump -r capture.pcap
9. 顯示摘要資訊:sudo tcpdump -q
使用 -q 引數減少輸出資訊的詳細程度。
10. 顯示詳細的解碼資訊:sudo tcpdump -v or -vv or -vvv
-v 引數可以多次使用以增加輸出的詳細度。
11. 捕獲指定數量的包:sudo tcpdump -c [number_of_packets]
捕獲指定數量的網路包後停止:sudo tcpdump -c 100

例子
tcpdump -i lo -nne port 10002 -nnv -w localhost10002.pcap # lo是localhost的簡稱
tcpdump -i eth0 -nne port 10002 -nnv -w ethernet10002.pcap # eth是ethernet的簡稱,eth0表示第一個網路卡。
抓包
tcpdump -i lo -nnve port 41008 -w 31008.pcap