0

リモート ホストのさまざまなインターフェイスから tcpdump を収集する必要があります。
現在、私は次の方法でそれを行います:

ssh remotehost "tcpdump -i iface1 -w - " > iface1_dump.pcap &
ssh remotehost "tcpdump -i iface2 -w - " > iface2_dump.pcap

2番目のsshコマンドが途中である間にパケット損失を最小限に抑えるために、単一のssh接続でそれを実現する方法があるかどうか(おそらくいくつかの複雑なシェルリダイレクトが治療法です)
2つの条件:
リモートホストのディスク容量が本当に限られているため、できるt そのホストでローカルに tcpdump します
tcpdump -i anyはイーサネット ヘッダーに影響するため、使用できません

4

3 に答える 3

0
ssh remotehost "tcpdump -iiface1 -w- &
                tcpdump -iiface2 -w- >&2 2>/dev/null" >iface1_dump.pcap 2>iface2_dump.pcap
于 2014-04-04T10:48:09.297 に答える
0

2 つの ssh がおそらく最も適切な方法ですが、最初の ssh で 's/^/one /' をバックグラウンドで sed し、2 番目の sed で 's/&/two /' を sed してから、それらを引き離すこともできます。たとえば、ローカル ホストで「egrep '^one ' | sed 's/one //'」を使用します。

出力を 1 組のファイルに保存し、「完了」したらそれらを scp で戻すこともできます。

于 2012-07-22T03:59:04.517 に答える
0

ターゲット マシンにファイル「SEND_DATA」を作成し、次の 2 行を挿入します。

tcpdump -i iface1 -w - | nc <IP> <PORT1>
tcpdump -i iface2 -w - | nc <IP> <PORT2>

すべてのマシンには netcat があるため、機能します。SEND_DATA を実行可能としてマークします

次に、PC でリッスン ポートを開き、リモート マシンでスクリプトを実行します。

> OUT1 nc -l -p PORT1
> OUT2 nc -l -p PORT1
ssh remotehost SEND_DATA

この時点で、ファイル OUT1 と OUT2 がデータの受信を開始します。

パラメータが時々異なることがわかったので、nc の 2 つのバージョンのマニュアルも参照する必要があります。

于 2012-07-21T14:56:48.843 に答える