What are the differences between ncat, nc and netcat?
nc
and netcat
are two names for the same program (typically, one will be a symlink to the other). Though—for plenty of confusion—there are two different implementations of Netcat ("traditional" and "OpenBSD"), and they take different options and have different features.
Ncat is the same idea, but from the Nmap project. There is also socat
, which is a similar idea. There is also /dev/tcp
, an (optional) Bash feature.
However, if you're looking to do network speed tests then all of the above are the wrong answer. You're looking for iperf3 (site 1 or site 2 or code).
Looking at the packets in Debian, there are two different implementations of netcat (nc
), I think both of them install with netcat
as well as nc
symlinked to the same binary (Though they use Debian's "alternatives" system to control which one of the implementation appears with the main name.) Those two are netcat-traditional
("the "classic" netcat, written by Hobbit. It lacks many features found in netcat-openbsd.") and netcat-openbsd
("the OpenBSD rewrite of netcat, including support for IPv6, proxies, and Unix sockets.").
ncat
is the version of netcat from the Nmap Project claimed to be "a much-improved reimplementation of the venerable Netcat".
All three seem to have the same basic functionality, as in being able to open a socket and connect or listen, but for anything above that, you may want to check the manual of your version. (The OpenBSD one doesn't support -e
for executing a command after connection, for example.)