telnet
とnetcat
の違いを見つけることができる説明を探しています。どの場合は、telnetとnetcatを使用する必要があります。 Telnetができること、そのnetcatができないこと、およびその逆。
私はインターネットから答えを得ようとしましたが、それは私が理解するのに役立ちません。さまざまなコマンドを見つけることができました。違いのあるユースケースの例を探しています。
誰かが違いを説明で説明できますか?
ありがとう!
注:いくつかの異なるTelnetプログラムと、いくつかの異なるNetcatバリアントがあります。機能が多少異なる場合があります。
一般に、telnet
は特にRFC 854「Telnet」プロトコルを話します。サーバーからのTelnetオプションネゴシエーションコマンドとして特定のバイトを認識し、適切に応答し、各接続の最初に独自のコマンドを送信します。 (たとえば、$ TERM値とウィンドウサイズを行×列でサーバーに報告します。)また、Unix LFの改行をNVT CR + LFバージョンに変換し、Ctrl +]を次のように認識します。 「エスケープ」キー。
これはtelnet
を未加工の8ビットTCP接続に適さなくし、転送されたデータを破壊するため、一般的にバッチでの使用には適していません。ただし、FTPやSMTPなどのASCIIベースのプロトコルを対話的に操作するために引き続き使用できます。非標準のポートに接続すると、多くのTelnetクライアントがネゴシエーションを開始しないため、機能します(ただし、クライアントは応答します)。
Netcat nc
はそのようなことは何もしません–それは主に 8ビットのクリーンTCPクライアントです。 telnetと同様にASCIIプロトコルで使用できますが、送信されるバイトを変更しないため、バッチデータ転送のTCPへの「パイプ」として使用することもできます。それを通して。
多くの場合、Netcatは非TCPトランスポート(UDP、場合によってはSCTP、ローカルUnixソケット)も提供しますが、TelnetクライアントはTCPのみです。
一方、netcatはプロトコルを理解していません。nc
を使用して実際のTelnetサーバーに接続しようとすると、まったく機能しません。サーバーは、使用している端末のタイプを認識できません。ウィンドウのサイズを変更できませんでした。
telnet
を使用します。cat
のようなものが必要だが、TCPの場合は、nc
またはsocat
を使用します。nc
/socat
を使用してください。telnet
は使用しないでください。telnet
は行末をCR + LFに変換するため、このようなサーバーでも必要となるため、わずかに優れています。)