LinuxサーバーのTelnet

LinuxサーバーのTelnet

Telnet接続を取得するには、コンピュータの両側でTelnetを有効にする必要があるかどうか疑問に思います。

問題はこれです:Linux Webサーバー(Red Hat)でポート80の一部のパブリックIPでTelnetを試していることです。

このパブリックIPではHTTPが有効になっています(80)。 Telnetが有効になっているかどうかはわかりませんが、所有者は有効になっていると言います。

私のLinuxサーバーではHTTP(80)が有効になっていますが、Telnetは有効ではありません。代わりにSSHが有効になります。

Linuxサーバーからリモートでログインすると、telnet PublicIP 80次のように表示されます。

Trying "PublicIP"...
Connected to "PublicIP" ("PublicIP").
Escape character is '^]'.
Connection closed by foreign host

これが機能するには、私のサーバーでTelnetを有効にする必要がありますか?なぜなら、相手には問題がないということが他の消息筋を通じて確認されたからです。パブリックIP:220.226.190.180

どのように機能できるか説明してください。 LinuxサーバーでTelnetを有効にする必要がある場合は、コマンドと方法を共有してください。

答え1

telnet?を使用してリモートWebサーバーへの接続をテストしようとしています。いいえ。 Telnet サーバーは必要ありません。リモート HTTP サーバーは、エスケープ文字で示されるコマンドを待っています。待機時間を超過すると、接続が閉じます。だから...

telnet <hostname or ip address> 80

次に、いくつかのHTTPコマンドを入力します。

GET / HTTP/1.1
host: <fqdn>

リモートWebサーバーを提供するように構成されたホストのFQDNを使用します。上記のHTTPコマンドを使用して基本文書を返します。 0xAFの正確なコメントを参照してください。

答え2

最初の文の質問に答えるには:Telnetには、サーバーサイドアプリケーション(デーモン)とクライアントサイドアプリケーションの2つがあります。

Telnet サーバーが稼働している間、コンピュータは Telnet クライアントの接続を TCP ポート 23 でリッスンします。

Telnetクライアントはどのポートでもリッスンせず、代わりにコンピュータのTCPポート23(デフォルト)に接続しようとします。接続が正しい場合は、ユーザーにログインした後に対話型シェルセッションに入るように求められます。 Telnetはデフォルトで暗号化されていないプレーンテキスト(パスワードを含む!)を使用して通信するため、推奨されません。

しかし、Christopherが素晴らしい答えで述べたように、実際にTelnetを使用してhttpサーバーをテストするには、Telnetプログラムを使用することができ、Telnetサーバーは必要ありません。

Telnetクライアントプログラムを使用すると、デフォルトのポート23番ポートではなくTCPポートに接続できます。

telnet <hostname> <TCP port>

httpサーバーは通常ポート80をリッスンするため、Telnetプログラムを使用してポート80に接続し、接続時にhttpサーバーがブラウザに送信する内容を確認できます。

telnet google.com 80

これはリンクされますが、次のテキストを入力する必要があります。これは単なるhttpリクエストです(大文字と小文字の区別が重要です)。

GET / HTTP/1.1
host: test.com

次にEnterキーを2回押します。

これにより、Googleがブラウザに提供するすべての生のHTMLが表示されます。同じ概念を使用して独自のhttpサーバーをテストできます。

答え3

telnetHTTPプロトコルをテストするために使用できますが、操作に適したツールがあります。個人的にお勧めしますcurl。これは本質的にさまざまなプロトコル(HTTP、HTTPS、FTP...)と対話できるコマンドラインユーティリティです。テストcurlの代わりにHTTPサーバーを使用すると、telnetHTTP要求を手動で入力する必要がなくなり、より一般的な情報を得ることができます。現在の状況で役立つ可能性のあるいくつかの機能は次のとおりです。

HTTPを使用してホストに接続し、基本文書を要求します。

curl <public ip>

HTTPを使用してホストに接続し、HTTPヘッダーのみを表示します。

curl -I <public ip>

HTTP を使用してホストに接続し、HTTP ヘッダーのみを表示し、3xx リダイレクトに従います。

curl -LI <public ip>

curl文字通り何十ものオプションがあります。curl --helpクイックサマリーおよびman curl/またはcurl --manualより詳細な情報を使用することをお勧めします。

答え4

Telnet または Curl がない場合は、cat ディレクトリと proc ディレクトリを使用してポートに接続することもできます。

cat < /dev/tcp/HOST/PORT

から抜粋この記事(スペイン語)

関連情報