nc
、netcat
または をいつ使用すればよいかわかりませんncat
。一方が他方の非推奨バージョンである場合、一方が 1 つのディストリビューションでのみ使用可能な場合、同じコマンドだが名前が異なる場合、などです。
実は少し混乱しています。私の質問は、2 台の CentOS 7 サーバー間でネットワーク速度テストを実行したいというものです。 と を使用した例はいくつかありましたがnc
、またはdd
を使用した例はあまりありませんでした。netcat
ncat
誰かこれについて説明してもらえませんか?
答え1
nc
これらはnetcat
同じプログラムに対する 2 つの名前です (通常、一方は他方へのシンボリックリンクになります)。ただし、混乱を招く原因として、Netcat には 2 つの異なる実装 (「従来型」と「OpenBSD」) があり、それぞれ異なるオプションを取り、異なる機能を備えています。
Ncat も同じアイデアですが、Nmap プロジェクトから生まれました。 もsocat
同様のアイデアです。 また/dev/tcp
、(オプションの) Bash 機能である もあります。
ただし、ネットワーク速度テストをしたい場合は全て上記のどれかが間違った答えです。iperf3 (サイト 1またはサイト 2またはコード)。
答え2
Debianのパケットを見ると、netcat(nc
)の2つの異なる実装があります。考えるどちらも同じバイナリにシンボリックリンクされてインストールされますnetcat
(nc
ただし、Debianの「alternatives」システムを使用して、メイン名で表示される実装の1つを制御します)。これら2つはnetcat-traditional
(「クラシック」ネットキャット、著者:ホビット.netcat-openbsd に備わっている多くの機能が欠けています。") およびnetcat-openbsd
(「IPv6、プロキシ、Unix ソケットのサポートを含む、netcat の OpenBSD 書き直し。」)。
ncat
のバージョンですNmap プロジェクトの netcat「由緒ある Netcat の大幅に改良された再実装」であると主張しました。
これら 3 つは、ソケットを開いて接続または listen できるという点で、基本的な機能は同じであるように見えますが、それ以上の機能については、使用しているバージョンのマニュアルを確認することをお勧めします。(-e
たとえば、OpenBSD では、接続後にコマンドを実行する機能はサポートされていません。)
答え3
ncat は SSL をサポートしており、https セッションのテストに最適です。nc/netcat では、「openssl s_client ...」を使用する必要があります。