ホーム テクノロジー ネットワーキング 接続の問題をテストおよびトラブルシューティングするための Telnet コマンドを学習する

接続の問題をテストおよびトラブルシューティングするための Telnet コマンドを学習する


Telnet は、リモート コンピュータに仮想的に接続できるようにする一般的なネットワーク プロトコルです。 1969 年に開発された古いプロトコルです。

現在では、SSH(Secure Shell)が Telnet に取って代わりました。 SSH は、ネットワーク管理者やシステム管理者がリモート コンピュータに安全に接続できるようにするネットワーク通信プロトコルでもあります。

Telnet に関しては、現在、接続の問題のトラブルシューティングとテストに主に使用されています。 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の仕組み
インターネット
インターネット

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 は要求された変更を完了しました」というメッセージが表示されたら、「閉じる」を押します。
Windows で Telnet を有効にする
Telnet クライアント有効化 Windows
Telnet クライアント有効化 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 アドレスは、接続先のサーバーです。ポートは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 つのことが起こる可能性があります。

  1. サーバーへの接続に成功しました。 「サーバーに接続しました」またはその他の確認メッセージが表示されるか、追加の入力を待ちます。
  2. サーバーへの接続に失敗しました。その場合、「接続に失敗しました」や「接続が拒否されました」などのメッセージが表示されることがあります。
  3. Telnet がメッセージを返しません。

Telnet でリモート サーバーへの接続が失敗する原因は複数あります。また、Telnet がエラー メッセージを返さない場合は、ファイアウォールまたはウイルス対策がユーザー側またはサーバーの接続をブロックしている可能性があります。

ポート 80 で .com に接続すると、さらなるコマンドを待つ間、インスタント接続が表示されます。

 telnet .com 80
Connected to .com.
Escape character is '^]'.

ここで、次のコマンドを入力します。

 GET / HTTP/1.1
Host: .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 接続をテストできます。

  1. インターネットからメール サーバーへのメール フローをテストします。
  2. メール サーバーから別のサーバーへのメール フローをテストします。

サンプル交換を実行するには、ターミナルに次のコマンドを入力します。

 telnet mail..com 25
Trying 192.168.0.68…
Connected to mail..com
Escape character is '^]'.
220-mail..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..com
250-.com Hello .com [192.168.3.200]
250-AUTH PLAIN LOGIN

QUIT

ここで、ユーザーが入力した他の 2 つのコマンドは次のとおりです。

  1. EHLO mail..com
  2. やめる

ECLO コマンドは、MAIL FROM コマンドを使用する前にドメイン名を識別します。 QUIT コマンドは Telnet セッションを終了します。

より高度なコマンドが必要な場合は、 「 Telnet を使用して Exchange サーバーで SMTP 通信をテストする」に関する記事を参照してください。

FTPサーバーのトラブルシューティング

SMTP サーバーや Web サーバーと同様に、FTP サーバーのトラブルシューティングも行うことができます。 FTP サーバーの IP アドレスを入力し、ポート 21 に接続するだけです。

 telnet ftp..com 21

試行が成功すると、サーバーに接続されます。それ以外の場合は、エラー メッセージが表示されます。

 Error #0 (php_network_getaddresses: getaddrinfo failed: No address associated with hostname)

SSHのトラブルシューティング

SSH は安全な接続を現代的に取り入れたもので、Telnet に代わるものです。 Telnet を使用して、サーバーが SSH を実行しているかどうかを確認できます。

これを行うには、サーバー IP アドレスとポート 22 を指定して Telnet コマンドを使用します。

 telnet .com 22
Trying 192.168.0.62…
Connected to .com.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3

最後の言葉

Telnet は現代では便利なツールです。これにより、より複雑なツールやコマンド ラインに大きく依存することなく、ネットワーク接続のトラブルシューティングを成功させることができます。 Telnet を使用すると、Web サーバーにアクセスできるかどうか、ポートが開いているかどうかを確認し、SSH と FTP のトラブルシューティングを行うことができます。

「telnet コマンドが見つかりません」エラーを解決する方法については、この記事を参照してください。

「接続の問題をテストおよびトラブルシューティングするための Telnet コマンドを学習する」についてわかりやすく解説!絶対に観るべきベスト2動画

🔥 ネットワークのトラブルシューティングに Telnet を使用する方法
【ゆっくりIT】netstatコマンド 現場で役立つネットワーク解析コマンド ~ゆっくり解説コマンド No.035