接続の問題をテストおよびトラブルシューティングするための Telnet コマンドを学習する
公開: 2022-11-22Telnet は、リモート コンピュータに仮想的に接続できる一般的なネットワーク プロトコルです。 1969年に開発された古いプロトコルです。
現在、SSH (Secure Shell) が Telnet に取って代わりました。 SSH は、ネットワークおよびシステム管理者がリモート コンピュータに安全に接続できるようにするネットワーク通信プロトコルでもあります。
Telnet に関しては、現在、主に接続の問題のトラブルシューティングとテストに使用されています。 Telnet コマンドを学習すると、ネットワークをより適切に管理するのに役立ちます。
この記事では、telnet コマンドの仕組みや接続の問題のトラブルシューティング方法など、telnet コマンドを詳しく見ていきます。 始めましょう。
テルネットとは?
Telnet は、 Tel etype Network を表すネットワーク プロトコルです。 リモートサーバーと通信するためのコマンドラインインターフェイス/インタープリターを提供します。 システム管理者とネットワーク管理者は、Telnet の端末間通信を使用してリモート コントロールを取得し、デバイスの初期設定などのさまざまなアクションを実行します。
Telnet プロトコルを容易にするには、Telnet クライアントが必要です。 クライアントは、ユーザーが TCP/IP を介してリモート システムにサインインし、アプリケーションを使用できるようにします。 Telnet クライアントは、Telnet サーバー アプリケーションを使用して操作を実行します。 さらに、Telnet クライアントは、Windows、Linux、macOS など、最新のすべてのオペレーティング システムで利用できます。
注:この記事で「Telnet」と言及する場合、特に言及されていない場合は「Telnet クライアント」を意味します。
Telnet は安全ですか?
1969 年の開始時には、セキュリティはネットワーク タスクを実行する際の主な関心事ではありませんでした。 そのため、Telnet は暗号化を使用しませんでした。 安全ではないため、TCP/IP ネットワークを介してリモート クライアントに接続することもお勧めしません。 その場合、暗号化されていないデータを妨害できるハッカーに身をさらすことになります。 SSH は、サーバーにリモートで接続するための安全な方法を提供する優れた代替プロトコルです。
Telnet はどのように機能しますか?
視覚的には、Telnet プロトコルは次のように機能します。

Telnet は、双方向 (クライアント サーバー プロトコル) の対話型通信システムを作成するテキスト指向の通信です。 8 バイト接続を使用して送信を行います。 また、Telnet を使用するには、端末に接続されたキーボードと画面が必要です。
ターミナルからコマンドを入力して、リモート コンピューターに接続します。 接続すると、Telnet を使用して、ファイルやプロセスを含め、サーバーを制御できます。
リモート サーバーに接続するには、コマンド プロンプトで「Telnet」と入力する必要があります。 構文は次のとおりです。
telnet hostname port
接続に成功したら、Telnet プロンプトを使用して、さらに Telnet コマンドを入力できます。
Telnet を使用できるさまざまな目的は次のとおりです。
- 開いているポートを確認する
- ファイルの編集、プログラムの実行
- スイッチ、ルーターなどのネットワーク デバイスを構成します。
セッションを終了するには、Telnet プロンプトに「Telnet」と入力する必要があります。
Windows/Linux および macOS で Telnet クライアントを有効にする方法
Telnet クライアントは、すべての主要なプラットフォームとオペレーティング システムで使用できます。 ただし、使用する前にインストールまたは有効にする必要があります。
#1。 ウィンドウズ
Windows 7 以降 (8、10、11) または Windows Vista を使用している場合は、次の手順に従って Telnet クライアントを有効にすることができます。
- スタート メニューに移動し、コントロール パネルを検索します。 Win + Rを押してから「control」と入力して、コントロールパネルを開くこともできます。 コントロールパネルが開きます。
- 次に、「プログラム」>「プログラムと機能」を選択します。
- 「左ペインから Windows の機能を有効または無効にする」を選択します。
- 「Telnet クライアント」の横にあるチェックボックスをオンにして、「OK」を押します。
- ここで、Windows が有効になったら「閉じる」を押して、「Windows は要求された変更を完了しました」というメッセージを表示します。

注:コンピューターを再起動しなくても、すぐに Telnet クライアントを使い始めることができます。
#2。 Linux
Windows と同様、Linux にも Telnet はプリインストールされていません。
Ubuntu に Telnet をインストールするには、次のコマンドを使用する必要があります。
# sudo apt-get install telnet
注:コマンドは、Linux ディストリビューションによって異なります。
#3。 マックOS
MacOS も Telnet をサポートしています。 インストールするには、Homebrew を使用する必要があります。 Homebrew がプリインストールされていない場合は、次のコマンドを実行してインストールできます。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
インストールを承認するために管理者パスワードを入力するよう求められます。
Homebrew がインストールされている状態で、次のコマンドを入力して MacOS に Telnet をインストールします。
brew install telnet
Telnet を使用したネットワーク接続のテストとトラブルシューティング
Telnet はリモート接続には適していませんが、ネットワーク接続のテストとトラブルシューティングには役立ちます。
先に進む前に、Telnet 構文を簡単に見てみましょう。
telnet <server/host IP address> <port>
ここで、サーバー/ホストの IP アドレスは、接続先のサーバーです。 portは TCP ポート番号です。
たとえば、サーバー IP アドレス example.com にポート 80 で接続する場合は、次のコマンドを入力する必要があります。
telnet example.com 80
これは、事前にトラブルシューティングを行うために、リモート サーバーの IP アドレス/名前とポート番号を知っておく必要があることを意味します。

始めましょう。
Web サーバーのトラブルシューティング
Telnet は、サーバー接続をテストする簡単な方法を提供します。 サーバー/ホストの IP アドレスと、接続を受け入れるポートに接続するだけです。
たとえば、ポート 532 で 23.45.75.22 に接続している場合は、次のコマンドを実行する必要があります。
telnet 23.45.75.22 532
ここから、次の 2 つのことが起こります。
- サーバーへの接続は成功です。 「サーバーに接続されました」またはその他の確認メッセージが表示されるか、追加の入力を待ちます。
- サーバーへの接続に失敗しました。 その場合、「接続に失敗しました」や「接続が拒否されました」などのメッセージが表示されることがあります。
- Telnet からメッセージが返されません。
リモート サーバーへの Telnet 接続の試行が失敗する理由は複数あります。 また、Telnet がエラー メッセージを返さない場合は、ファイアウォールまたはウイルス対策がエンドまたはサーバーで接続をブロックしている可能性があります。
ポート 80 で geefklare.com に接続すると、次のコマンドを待つ間、すぐに接続されます。
telnet geefklare.com 80 Connected to geekflare.com. Escape character is '^]'.
ここで、次のコマンドを入力します。
GET / HTTP/1.1 Host: geekflare.com
以下が返されます。
HTTP/1.1 200 OK Date: Fri, 18 Nov 2022 04:40:33 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 X-Frame-Options: SAMEORIGIN Referrer-Policy: same-origin Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 [Additional server output follows]
ここで、サーバーへの接続に失敗した試行を見てください。
telnet 23.45.75.222 532 Connecting To 23.45.75.222...Could not open a connection to the host on port 532: Connect failed
ポートが開いているかどうかを確認する
サーバーが Telnet を使用してリモートでアクセスできる場合は、それを使用してポートが開いているかどうかを確認することもできます。
サーバーのポートが開いているかどうかを確認するには、次のコマンドを使用する必要があります。
telnet <server IP address> <port>
たとえば、サーバーの IP アドレスは 23.45.47.53 で、確認するポートは 532 です。
telnet 23.45.47.53 532
コマンドが成功すると、ポートが開いていることを示す空白の画面が表示されます。 「接続中..」と表示され、エラー メッセージが表示される場合は、ポートが開いていないことを意味します。
Connection to 23.45.47.53:532 - fail Error #110 (Connection timed out)
SMTP メール サーバーのトラブルシューティング
SMTP (Simple Mail Transfer Protocol) は、メール サーバー間の通信を管理します。
Telnet を使用して SMTP サーバーのトラブルシューティングを行い、メッセージが送受信されているかどうかを確認できます。 手動メッセージ要求を SMTP サーバーに送信します。 問題がなければ、応答が返ってきます。
Telnet では、次の 2 つの方法で STMP 接続をテストできます。
- インターネットからメール サーバーへのメール フローをテストします。
- メール サーバーから別のサーバーへのメール フローをテストします。
サンプル交換を実行するには、ターミナルで次のコマンドを入力します。
telnet mail.geekflare.com 25 Trying 192.168.0.68… Connected to mail.geekflare.com Escape character is '^]'. 220-mail.geekflare.com ESMTP Exim 4.7 220-We do not authorize the use of this system to 220 transport unsolicited and/or bulk e-mail.
EHLO mail.geekflare.com 250-geekflare.com Hello geekflare.com [192.168.3.200] 250-AUTH PLAIN LOGIN QUIT
ここで、ユーザーが入力した他の 2 つのコマンドは次のとおりです。
- EHLO mail.geekflare.com
- 終了する
ECLO コマンドは、MAIL FROM コマンドを使用する前にドメイン名を識別します。 QUIT コマンドは、Telnet セッションを終了します。
より高度なコマンドが必要な場合は、Telnet を使用した Exchange サーバーでの SMTP 通信のテストに関する記事を参照してください。
FTP サーバーのトラブルシューティング
SMTP サーバーや Web サーバーと同様に、FTP サーバーのトラブルシューティングも行うことができます。 FTP サーバーの IP アドレスを入力し、ポート 21 に接続するだけです。
telnet ftp.geekflare.com 21
試行が成功すると、サーバーに接続されます。 そうしないと、エラー メッセージが表示されます。
Error #0 (php_network_getaddresses: getaddrinfo failed: No address associated with hostname)
SSH のトラブルシューティング
SSH は安全な接続を現代的に取り入れたものであり、Telnet に取って代わります。 Telnet を使用して、サーバーが SSH を実行しているかどうかを確認できます。
これを行うには、サーバーの IP アドレスとポート 22 を指定して Telnet コマンドを使用します。
telnet geekflare.com 22 Trying 192.168.0.62… Connected to geekflare.com. Escape character is '^]'. SSH-2.0-OpenSSH_5.3
最後の言葉
Telnet は現在便利なツールです。 より複雑なツールやコマンド ラインに大きく依存することなく、ネットワーク接続のトラブルシューティングを成功させることができます。 Telnet を使用すると、Web サーバーにアクセスできるかどうか、ポートが開いているかどうかを確認し、SSH と FTP のトラブルシューティングを行うことができます。
「telnet コマンドが見つかりません」エラーを解決する方法については、この記事を参照してください。