mknod backpipe p
mknod log p
while :; do cat backpipe |nc -l -p 3001 |tee log| nc localhost 3000 |tee log >backpipe; done
Зависимости: (ba,k)sh, netcat, mknod, tee.
Работает следующим образом. Скажем, нам нужно просмотреть трафик на порту 3000. Устанавливаем netcat сервер на 3001 порту, форвардим соединение в оба конца на порт 3000. Копию всего, что передаётся в обоих направлениях, пишем в файл log. Если вдруг соединение закрывается, запускаем всё заново.
Посколько log — не обычный файл, просматривать его можно только в режиме мониторинга c помощью tail -f или less -f.
Естественно, сниффер строго однопоточный.