来自远程主机的2个tcpdumps

时间:2012-07-21 14:43:35

标签: linux shell tcpdump

我需要从远程主机的不同接口收集tcpdump 目前我按以下方式进行:

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

我想知道是否有办法在单个ssh连接中实现它(可能是一些复杂的shell重定向是一种治疗方法),以便在第二个ssh命令正在运行时最小化数据包丢失 2条件:
远程主机的磁盘空间确实有限,所以我无法在该主机上本地tcpdump tcpdump -i any 会影响以太网标头,因此我无法使用它

3 个答案:

答案 0 :(得分:0)

您在目标计算机上创建了一个文件“SEND_DATA”,您可以在其中放置以下两行:

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&amp; OUT2将开始接收数据。

您还需要查阅nc的2个版本的手册,因为我看到参数有时会有所不同。

答案 1 :(得分:0)

这两个ssh可能是最好的方法,但你也可以在第一个,后台和第二个sed'/&amp; / two /'中选择's / ^ / one /',并且然后在本地主机上用“egrep'^ one'| sed's / one //'”将它们分开。

您还可以将输出保存在一对文件中,并在“完成”时将其显示回来。

答案 2 :(得分:0)

ssh remotehost "tcpdump -iiface1 -w- &
                tcpdump -iiface2 -w- >&2 2>/dev/null" >iface1_dump.pcap 2>iface2_dump.pcap
相关问题