
nc
Ich bin nicht sicher , wann ich netcat
oder verwenden soll ncat
. Wenn das eine die veraltete Version des anderen ist? Wenn das eine nur in einer Distribution verfügbar ist? Wenn es derselbe Befehl ist, aber mit unterschiedlichen Namen?
Tatsächlich bin ich etwas verwirrt. Meine Frage kommt daher, dass ich einen Netzwerkgeschwindigkeitstest zwischen zwei CentOS 7-Servern durchführen möchte. Ich bin auf mehrere Beispiele gestoßen, bei denen nc
und verwendet wurden, dd
aber nicht viele, bei denen netcat
oder verwendet wurde ncat
.
Kann mir das bitte jemand klarmachen?
Antwort1
nc
und netcat
sind zwei Namen für dasselbe Programm (normalerweise ist einer ein symbolischer Link zum anderen). Allerdings gibt es – zur großen Verwirrung – zwei verschiedene Implementierungen von Netcat („traditionell“ und „OpenBSD“), die unterschiedliche Optionen und Funktionen bieten.
Ncat ist die gleiche Idee, stammt aber aus dem Nmap-Projekt. Es gibt auch socat
, das eine ähnliche Idee hat. Es gibt auch /dev/tcp
, eine (optionale) Bash-Funktion.
Wenn Sie jedoch Netzwerkgeschwindigkeitstests durchführen möchten, dannalleder oben genannten sind die falsche Antwort. Sie suchen nach iperf3 (Seite 1oderSeite 2oderCode).
Antwort2
Betrachtet man die Pakete in Debian, so gibt es zwei verschiedene Implementierungen von netcat ( nc
), ichdenkenbeide werden mit der gleichen Binärdatei installiert und sind mit netcat
dieser symbolisch nc
verknüpft (obwohl sie Debians "Alternativen"-System verwenden, um zu steuern, welche der Implementierungen mit dem Hauptnamen erscheint). Diese beiden sindnetcat-traditional
("der "klassische" Netcat, geschrieben vonHobbit. Es fehlen viele Funktionen, die in netcat-openbsd vorhanden sind.") undnetcat-openbsd
(„die OpenBSD-Neufassung von Netcat, einschließlich Unterstützung für IPv6, Proxys und Unix-Sockets.“).
ncat
ist die Version vonnetcat vom Nmap-Projektbehauptete, eine „stark verbesserte Neuimplementierung des ehrwürdigen Netcat“ zu sein.
Alle drei scheinen die gleiche Grundfunktionalität zu haben, wie etwa die Möglichkeit, einen Socket zu öffnen und eine Verbindung herzustellen oder zu lauschen. Für alles, was darüber hinausgeht, sollten Sie jedoch das Handbuch Ihrer Version überprüfen. (Die OpenBSD-Version unterstützt -e
beispielsweise nicht die Ausführung eines Befehls nach der Verbindung.)
Antwort3
ncat unterstützt SSL, was sich hervorragend zum Testen von https-Sitzungen eignet. nc/netcat erfordert die Verwendung von „openssl s_client …“