Tcpdump#

Tcpdump 是由網路社群主導的開源封包分析器

Install#

$ apt install tcpdump

Operate#

列出所有可用網路介面

tcpdump -D

擷取指定介面的封包

tcpdump -i eth0

不進行 DNS / Service Name 反解(強烈建議)

  • -n:不解析主機名稱
  • -nn:不解析主機名稱與 port 對應服務
tcpdump -i eth0 -n
tcpdump -i eth0 -nn

限制封包數量

tcpdump -i eth0 -c 10

顯示較詳細的輸出

tcpdump -i eth0 -v
tcpdump -i eth0 -vv
tcpdump -i eth0 -vvv

只抓 TCP / UDP / ICMP

tcpdump -i eth0 tcp
tcpdump -i eth0 udp
tcpdump -i eth0 icmp

指定 Port

tcpdump -i eth0 port 80
tcpdump -i eth0 tcp port 443
tcpdump -i eth0 udp port 53

指定網段

tcpdump -i eth0 host 244.178.44.0/24

AND / OR / NOT 條件

tcpdump -i eth0 host 244.178.44.111 and port 80
tcpdump -i eth0 host 244.178.44.111 or port 80
tcpdump -i eth0 host 244.178.44.111 not port 80

偵錯 HTTP / HTTPS 流量

tcpdump -i eth0 -nn tcp port 80 or port 443

檢查 SSH 是否有連線進來

tcpdump -i eth0 -nn tcp port 22

DNS 查詢分析

tcpdump -i eth0 -nn udp port 53

檢查是否有封包進來但服務沒回應

tcpdump -i eth0 -nn host X.X.X.X

寫入 pcap 檔

tcpdump -i eth0 -nn -w capture.pcap

限制檔案大小(避免爆磁碟)

  • -C 100:單檔 100MB
  • -W 5:最多 5 個檔案(輪替)
tcpdump -i eth0 -w cap.pcap -C 100 -W 5

讀取 pcap 檔

tcpdump -r cap.pcap

顯示 ASCII 內容

tcpdump -A cap.pcap

顯示 Hex + ASCII 內容

tcpdump -X cap.pcap

Reference#

Official docs:

tcpdump