Linux

在命令行中使用 wireshark/tshark 來忽 略 ssh 連接

  • January 8, 2013

我試圖通過查看數據包來調試一些,我想避免將所有 SSH 流量都發送到伺服器。有沒有辦法忽略?

我試圖做類似的事情,tshark -f "port !22"但它在命令後停止了監聽。

[root@vpn ~]# tshark -f "port !22"
tshark -f "port ls"
Running as user "root" and group "root". This could be dangerous.
Capturing on venet0
tshark: arptype 65535 not supported by libpcap - falling back to cooked socket.

tshark: Invalid capture filter: "port ls"!

That string isn't a valid capture filter (unknown port 'ls').
See the User's Guide for a description of the capture filter syntax.
0 packets captured
[root@vpn ~]#

tshark 和 tcpdump 都使用該pcap庫,因此擷取過濾器使用pcap-filter 語法。正如@tristan 所說,您想要的過濾器是"not port 22". 您可以將其作為帶引號的字元串參數輸入到-f選項中,或者作為不帶引號的參數輸入到命令中。以下命令是等效的:

# tshark -f "not port 22"
# tshark -- not port 22

tshark 抱怨您上面的命令的原因是您的 shell(可能是 Bash)將“!22”擴展為命令歷史記錄中的第 22 號命令,在本例中為“ls”。Bash 文件有更多關於歷史擴展的資訊。

引用自:https://serverfault.com/questions/463820