Je ne sais pas quand utiliser nc
, netcat
ou ncat
. Si l'un est la version obsolète d'un autre? Si l'un n'est disponible que sur une seule distribution? Si c'est la même commande mais avec des noms différents?
En fait, je suis un peu confus. Ma question vient de vouloir faire un test de vitesse réseau entre deux serveurs CentOS 7. Je suis tombé sur plusieurs exemples utilisant nc
et dd
mais pas beaucoup utilisant netcat
ou ncat
.
Quelqu'un pourrait-il clarifier cela pour moi
nc
et netcat
sont deux noms pour le même programme (généralement, l'un sera un lien symbolique vers l'autre). Cependant - pour beaucoup de confusion - il existe deux implémentations différentes de Netcat ("traditionnel" et "OpenBSD"), et elles prennent différentes options et ont des fonctionnalités différentes.
Ncat est la même idée, mais du projet Nmap. Il y a aussi socat
, qui est une idée similaire. Il y a aussi /dev/tcp
, une fonction Bash (facultative).
Cependant, si vous cherchez à faire des tests de vitesse de réseau, alors toutes les réponses ci-dessus sont la mauvaise réponse. Vous recherchez iperf3 ( site 1 ou site 2 ou code ).
En regardant les paquets dans Debian, il y a deux implémentations différentes de netcat (nc
), je pense les deux installent avec netcat
ainsi que nc
ont un lien symbolique vers le même binaire (bien qu'ils utilisent le système "alternatif" de Debian pour contrôler laquelle des implémentations apparaît avec le nom principal.) Ces deux sont netcat-traditional
("le" classique "netcat, écrit par Hobbit . Il manque de nombreuses fonctionnalités trouvées dans netcat-openbsd.") et - netcat-openbsd
("la réécriture OpenBSD de netcat, y compris la prise en charge d'IPv6, des proxys et des sockets Unix.").
ncat
est la version de netcat du Nmap Project prétend être "une réimplémentation très améliorée du vénérable Netcat").
Les trois semblent avoir les mêmes fonctionnalités de base, comme pour pouvoir ouvrir un socket et se connecter ou écouter, mais pour tout ce qui est au-dessus, vous voudrez peut-être consulter le manuel de votre version. (Celui d'OpenBSD ne prend pas en charge -e
pour exécuter une commande après la connexion, par exemple.)