因為 debug 很常用到 Wireshark,前陣子要翻文件的時候發現竟然沒有寫到!!今天有閒來把文章補一補 …
在 Linux 其實本身已經有內建的 tcpdump 可以用,不過 tcpdump 可以顯示的訊息實在太過陽春,所以必要的時候 Wireshark 還是好用很多。
不過這篇要談的是文字版的 Wireshark – tshark,用法跟 Wireshark 差不多,舉幾個常用的範例
指定 eth0
$ sudo tshark -i eth0
過濾只看 tcp 的連線
$ sudo tshark -i eth0 -f "tcp"
過濾 tcp 和 port 的連線
$ sudo tshark -i eth0 -f "tcp and port 3306"
過濾 tcp 和 port 和 ip
$ sudo tshark -i eth0 -f "tcp and port 3306 and 192.168.10.10"
用 not 反向過濾
$ sudo tshark -f "port not 53 and not arp"
常見問題:
當你執行 tshark 使用 filter 不管怎麼用都 Unknown 的話 …
Running as user “root” and group “root”. This could be dangerous.
Capturing on eth0
tshark: Unknown message from dumpcap, try to show it as a string: /usr/sbin/dumpcap: symbol lookup error: /usr/sbin/dumpcap: undefined symbol: pcap_set_tstamp_precision
通常應該是你少裝了封包擷取 Library,像是 libpcap …
$ sudo yum instsall libpcap -y
或是
$ sudo apt-get install libpcap-dev -y