Назад | Перейти на главную страницу

Как я могу увидеть отправленные / полученные данные netcat?

Я слежу за этим постом в проверить скорость с помощью netcat , но в своем блоге, когда он это делает ctrl-c , он получает данные об отправленных полученных байтах.

В посте он написал:

time yes|nc -v -v -n 192.168.0.8 2222 >/dev/null
than after ctrl-c het get:
sent 87478272, rcvd 0
real 0m9.993s
user 0m2.075s
sys 0m0.939s

Когда я делаю ctrl-c , Я не получаю этих данных.

Как я могу получить отправленные / полученные данные с помощью netcat?

На самом деле есть две реализации netcat, то оригинальная реализация * Hobbit * (называется netcat-traditional в Debian / Ubuntu) и Реализация OpenBSD (называется netcat-openbsd в Debian / Ubuntu). В Debian / Ubuntu двоичные файлы называются nc.traditional и nc.openbsd соответственно (и nc ссылка на один из них через систему альтернатив).

Сообщение в блоге, на которое вы ссылаетесь, использует nc.traditional который показывает отправленные / полученные байты при выходе. Вы, вероятно, используете nc.openbsd что не делает. Установите традиционную реализацию и вызовите ее явно.

% time yes | nc.traditional -vvn 127.0.0.1 10000 > /dev/null
(UNKNOWN) [127.0.0.1] 10000 (webmin) open
^C sent 99422208, rcvd 0
yes  1,06s user 0,09s system 38% cpu 3,003 total

В качестве альтернативы, если вы предпочитаете использовать nc.openbsd вы можете передать вывод netcat на стороне сервера в wc -c и просмотрите вывод так:

% nc -l -n -p 10000 | wc --bytes
99422208

Вы можете использовать Утилита Pipe Viewer (pv) чтобы наблюдать за визуальным движением потока. Его можно изменить для отображения выбранных единиц и он доступен в большинстве дистрибутивов.

Пример:

cat largefile | pv | netcat 192.168.10.1000 1234