我有一种情况,我想要捕获一个Linux机器上的所有networkingstream量(目前使用tcpdump),但将这些数据实时传输到另一个单独的(但连接的)networking上的Linux。 基本上我有
[network i'm curious about]---[eth0. Linux box eth1]----[separate network]---[eth0 monitoring Linux box]
我现在正在做的是将所有内容保存到pcap中,并定期将pcap转移到监视Linux机器上。 这是有效的,但效率非常低,绝对不是实时的。 有没有办法让tcpdump保存pcap到一个数据stream,我可以代理到监控盒没有设置像NFS或SMB的东西? 我认为最好的方式是对tcpdump怀疑的Linux机器,而不想在监视器上提供一个可写的共享。
有任何想法吗?
在monitoring_Linux_box上: # nc -l -k -p 1234 > /var/tmp/pcap
在Linux上: # tcpdump -U -w - | nc monitoring_Linux_box 1234
# tcpdump -U -w - | nc monitoring_Linux_box 1234
从监视框中:
# ssh root@otherbox tcpdump -n -i eth0 -w - | program_that_takes_pcap_on_input
将通过SSH工作生活捕捉?
ssh -t remotehost 'sudo tcpdump [options]'
或者如果你使用root ..
ssh root@remotehost 'tcpdump [options]'
(请确保从捕获中排除您的SSHstream量。)
如果你想在屏幕上观看它并将输出保存到一个文件中,请pipe道到tee
。