Я могу сделать это с помощью промежуточного файла pcap:
tcpdump -i lo -s 0 -w out.pcap 'tcp and port 12345'
^C
tcpreplay -i eth1 out.pcap
Можно ли пропустить pcap и сразу перенаправить весь трафик? Это было бы чрезвычайно полезно для длительных захватов, когда размер pcaps может увеличиваться до гигабайт.
Решение состоит в том, чтобы записать вывод tcpdump в stdout и прочитать tcpreplay из stdin:
tcpdump -i lo -w - 'tcp and port 12345' | tcpreplay -i eth1 -
Кажется, что tcpreplay не выходит на сломанном канале, поэтому после закрытия tcpdump с Ctrl-C, вам придется убить tcpreplay отдельно.