このフィルタは!ssh
Wiresharkでは動作しますが、tsharkでは動作しません! 、
これにより、tshark '!ssh'
フィルタに関する苦情が表示されます。ここで何が問題ですか?
答え1
単純でも差があります。キャプチャフィルタそしてより強力ですフィルタ表示。
!ssh
ディスプレイフィルターです。あなたはtshark
それを使用することができます
tshark -R '!ssh'
キャプチャフィルタと同様の効果:
tshark 'not tcp port 22'
tsharkに基本キャプチャフィルタSSH経由で実行すると。
答え2
@jofelが彼の答えで言ったように、私の記事で詳しく説明したように初心者のためのワイヤーシャークチュートリアル- ディスプレイフィルタとキャプチャフィルタには違いがあります。
キャプチャフィルタ
非常に混雑したネットワークでは、各パケットをキャプチャするとわずか数秒でギガバイトのデータが生成される可能性があります。
ここはキャプチャフィルタ便利に来てください。キャプチャフィルタを定義すると、Wiresharkはネットワークトラフィックの特定のサブセットのみをキャプチャするように指示できます。 IPアドレス、IPアドレス範囲、ポート番号、プロトコルなどに基づいてフィルタリングできます。
キャプチャフィルタを使用すると、一致しないパケットはキャプチャファイルに保存されません。あなたはそれらを回復することはできません。ネットワークが非常に混雑していない場合は、通常、すべてをキャプチャして保存し、ディスプレイフィルタを使用して興味のあるサブセットのみを分析することをお勧めします。
これはドキュメントですキャプチャフィルタの構文
フィルタ表示**は別の話です。
フィルタ表示キャプチャフィルタとは異なります。現在のWiresharkインターフェース(またはコンソールへのtshark出力)に表示される内容のみを制限します。より高度な機能であり、他の構文を使用します。文字列の比較、値の確認など、さまざまな演算子を使用してパーサーが認識したほとんどのパケットフィールドを使用できます。
Wireshark GUI ツールバーに入力する内容が表示フィルタです。横にある式ウィンドウを使用することをお勧めします。これはWiresharkの最も重要で一般的に使用される機能の1つです。
"not ssh"が利用できない理由捕獲フィルタは、表示フィルタより低いレベルで動作するキャプチャフィルタです。 Wiresharkは、キャプチャフィルタリングを実行するときに各パケットのプロトコルが何であるかを知りません。これは、解剖学者が行うより高いレベルの分析です。
キャプチャレベルでSSHトラフィックを除くすべてのエントリをフィルタリングするには、ポート22トラフィックをフィルタリングする必要があります。つまり、"not port 22"
キャプチャフィルタを使用する必要があります。
tsharkに関しては
tsharkではキャプチャフィルタと表示フィルタを使用できますが、コマンドラインスイッチオプションは異なります。
キャプチャフィルタの例:tshark -f "not port 22"
フィルタ例の表示:tshark -R "not ssh"
もう一つのことは、!ssh
bashのようないくつかの人気のあるUnixシェルで使用される感嘆符が特別な意味を持ち、シェルによって解釈されるということです。今後実行したいアプリケーションに渡されます。このようにエスケープするか、キャプチャフィルタと表示フィルタの両方でサポートされている論理演算子を\!ssh
使用する必要があります。not
これは徹底的な答えであり、最初に私の恥ずかしい挿入を正当化します:)