Unix двунаправленный канал в командной строке

Я был в состоянии использовать эту команду Linux для подключения Netcat к последовательному порту:

nc -l 80 <> /dev/ttyS0

Я хотел бы иметь возможность войти в эту транзакцию. Мой план резервного копирования - использовать Wireshark для мониторинга потока netcat, но в идеале я хотел бы сделать что-то вроде этого:

cat /dev/ttyS0 | tee upstream.bin | nc -l 80| tee downstream.bin | /dev/ttyS0

Это пытается дважды открыть ttyS0 и, следовательно, выдает ошибку прав доступа. Кто-нибудь знает умный способ сделать это?

1 ответ

Решение

Документация Netcat говорит

Чтобы получить шестнадцатеричный файл дампа данных, отправленных любым способом, используйте "-o logfile". Строки дампа начинаются с "<" или ">", чтобы обозначить соответственно "из сети" или "в сеть", и содержат общее количество для каждого направления, а также шестнадцатеричные и ascii представления трафика. Захват шестнадцатеричного дампа, естественно, немного замедляет netcat, поэтому не используйте его там, где важна скорость.

Другие вопросы по тегам