2来自远程主机的tcpdumps
问题描述:
我需要从远程主机的不同接口收集tcpdump。
目前我做以下列方式:2来自远程主机的tcpdumps
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任何影响以太网头,所以我不能使用它
答
创建目标机器上,在你把这些2行上的一个文件“SEND_DATA”:
tcpdump -i iface1 -w - | nc <IP> <PORT1>
tcpdump -i iface2 -w - | nc <IP> <PORT2>
每台机器都有netcat的,所以它的工作原理。您标记SEND_DATA可执行
接下来,你的电脑上打开一个监听端口,和远程计算机上运行脚本:
> OUT1 nc -l -p PORT1
> OUT2 nc -l -p PORT1
ssh remotehost SEND_DATA
在这一瞬间,文件OUT1 & OUT2将开始接收数据。
您还需要查阅2个版本的nc手册,因为我看到有时参数有所不同。
答
这两个ssh可能是最好的方法,但你也可以在第一个sed的'/ ^/one /'上,第二个sed's/&/two /',以及然后在本地主机上用“egrep'^ one'| sed's/one //'”将它们分开。
您也可以将输出保存在一对文件中,并在“完成”时将其返回。
答
ssh remotehost "tcpdump -iiface1 -w- &
tcpdump -iiface2 -w- >&2 2>/dev/null" >iface1_dump.pcap 2>iface2_dump.pcap
你无法相信,但该主机没有安装nc/netcat。 这是非常特定的服务器,运行非常特定的WindRiver Linux发行版 – 2012-07-21 15:05:09
然后,您必须安装netcat,某些ssh客户端,某些ftp客户端等。否则,您可以将2个命令放入scrit文件,并配置tcpdump以输出不同的内容在同一个控制台上,然后在PC上拆分合并的输出。 – alinsoar 2012-07-21 15:07:41