如何将 tcpdump 捕获的流量直接发送到接口?

如何将 tcpdump 捕获的流量直接发送到接口?

我可以使用中间 pcap 文件来完成此操作:

tcpdump -i lo -s 0 -w out.pcap 'tcp and port 12345'
^C
tcpreplay -i eth1 out.pcap

是否可以跳过 pcap 并立即转发所有流量?这对于长时间运行的捕获非常有用,因为 pcap 的大小可能会增加到 GB。

答案1

解决方案是将 tcpdump 输出写入 stdout 并让 tcpreplay 从 stdin 读取:

 tcpdump -i lo -w - 'tcp and port 12345' | tcpreplay -i eth1 -

看来 tcpreplay 不会在管道断开时退出,因此,在使用 关闭 tcpdump 后Ctrl-C,您必须单独终止 tcpreplay。

相关内容