Я не уверен, когда использовать nc
, netcat
или ncat
. Если один из них является устаревшей версией другого? Если один доступен только в одном дистрибутиве? Если это одна и та же команда, но с разными именами?
На самом деле я немного запутался. Мой вопрос возник из-за желания провести тест скорости сети между двумя серверами CentOS 7. Я наткнулся на несколько примеров с использованием nc
и , dd
но не на много с использованием netcat
или ncat
.
Может ли кто-нибудь прояснить этот вопрос?
решение1
nc
и netcat
— это два имени одной и той же программы (обычно одно будет символической ссылкой на другое). Хотя — чтобы не путаться — существуют две разные реализации Netcat («традиционная» и «OpenBSD»), и они используют разные опции и имеют разные функции.
Ncat — это та же идея, но из проекта Nmap. Также есть socat
, которая является похожей идеей. Также есть /dev/tcp
, (опциональная) функция Bash.
Однако, если вы хотите провести тесты скорости сети, товсеиз вышеперечисленного - неправильный ответ. Вы ищете iperf3 (сайт 1илисайт 2иликод).
решение2
Рассматривая пакеты в Debian, можно увидеть две различные реализации netcat ( nc
), ядуматьОба они устанавливаются вместе с одним и тем же двоичным файлом netcat
, а также nc
ссылаются на него (хотя они используют систему «альтернатив» Debian для управления тем, какая из реализаций отображается с основным именем). Эти дваnetcat-traditional
("классический" netcat, написанныйХоббит. В нем отсутствуют многие функции, имеющиеся в netcat-openbsd.") иnetcat-openbsd
(«переработанная версия netcat для OpenBSD, включающая поддержку IPv6, прокси-серверов и сокетов Unix»).
ncat
это версияnetcat из проекта Nmapутверждается, что это «значительно улучшенная версия почтенного Netcat».
Все три, похоже, обладают одинаковыми базовыми функциями, например, возможностью открывать сокет и подключаться или прослушивать, но для всего, что выходит за рамки этого, вам, возможно, захочется проверить руководство вашей версии. ( -e
Например, OpenBSD не поддерживает выполнение команды после подключения.)
решение3
ncat поддерживает SSL, что отлично подходит для тестирования сеансов https. nc/netcat требует использования «openssl s_client ...»