InfraAcademy

InfraAcademy Blog

【初心者向け】Telnetコマンドの使い方解説【遠隔でPCを操作してみよう!】

こんにちは、インフラエンジニアのryuです。

今回は、Telnetコマンドの使い方を解説します。

Telnetと聞くと、遠隔からサーバーを操作するコマンドというイメージがあるかもしれません。

確かに、以前はサーバーやネットワーク機器へのリモート接続に使われていました。しかし、Telnetの通信は暗号化されないため、現在の遠隔操作ではSSHを使うのが基本です。

では、Telnetはもう使わないのでしょうか。

実務では、サーバーのTCPポートに接続できるか確認する方法として使うことがあります。

この記事では、Telnetコマンドの基本から、接続できないときの確認方法まで初心者向けに解説します。

Telnetとは?

Telnetは、ネットワークを通して別のコンピューターと文字情報をやり取りするための仕組みです。

Telnetには、主に以下の2つの使い方があります。

使い方 現在の考え方
サーバーやルーターへの遠隔接続 通信が暗号化されないため、基本的にはSSHを使う
TCPポートの接続確認 トラブル調査で使うことがある

例えば、Webサーバーの80番ポートや、メールサーバーの25番ポートに接続できるか確認できます。

ただし、Telnetで接続できたからといって、サービスがすべて正常に動いているとは限りません。

あくまで、指定したホストのTCPポートまで接続できたかを確認する方法です。

Telnetコマンドの基本的な使い方

Telnetコマンドは、接続先のホスト名またはIPアドレスを指定して実行します。

telnet 192.168.1.10

ポート番号を確認したい場合は、接続先の後ろにポート番号を指定します。

telnet 192.168.1.10 80

基本的な書式は以下の通りです。

telnet 接続先 ポート番号

IPアドレスではなく、ホスト名やドメイン名も指定できます。

telnet example.com 80

ポート番号の意味が分からない方は、ポート番号とは?コマンドを打ちながら実践的に理解するも参考にしてください。

TelnetでWebサーバーへ接続してみる

まずは、Webサーバーで使われる80番ポートへ接続してみましょう。

telnet example.com 80

接続に成功すると、環境によっては画面が何も表示されない状態になります。

何も表示されないと失敗したように見えますが、TCP接続が成功して入力待ちになっている可能性があります。

HTTPの通信を確認したい場合は、接続後に以下を入力します。

GET / HTTP/1.1
Host: example.com

Hostの行を入力したあと、もう一度Enterを押して空行を送信します。

WebサーバーからHTTPヘッダーやHTMLが返ってくれば、80番ポートの先でHTTPサーバーが応答しています。

HTTPSの確認にはcurlを使う

HTTPSでは、HTTPの前にTLSによる暗号化通信が行われます。

TelnetはTLS通信を処理できないため、443番ポートへ接続できても、Webページの内容までは正しく確認できません。

HTTPSを確認するときは、curlを使う方が分かりやすいです。

curl -I https://example.com/

TelnetはTCPポートの接続確認、curlはHTTP・HTTPSの応答確認と使い分けましょう。

WindowsでTelnetを使えるようにする

Windowsでは、Telnetクライアントが無効になっていることがあります。

コマンドプロンプトでTelnetを実行したときに、以下のエラーが表示される場合です。

'telnet' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

この場合は、Windowsのオプション機能からTelnetクライアントを有効にします。

コントロールパネルから、以下の順番で開きます。

プログラム
→ Windowsの機能の有効化または無効化
→ Telnet Client

Telnet Clientにチェックを入れたら、OKを押します。

管理者としてコマンドプロンプトを起動し、以下のコマンドで有効にすることもできます。

dism /online /Enable-Feature /FeatureName:TelnetClient

インストール後に新しいコマンドプロンプトを開き、Telnetを実行してみましょう。

LinuxでTelnetをインストールする

Linuxでも、Telnetクライアントが最初から入っているとは限りません。

UbuntuやDebian系では、以下のコマンドでインストールできます。

sudo apt update
sudo apt install telnet

Fedoraなどの環境では、以下のようにインストールします。

sudo dnf install telnet

インストールできたら、バージョンやヘルプを確認してみましょう。

telnet --help

Telnetをインストールできない環境では、後ほど紹介するncやcurlでも接続確認ができます。

Telnetを終了する方法

接続中に通常のコマンド入力へ戻れなくなることがあります。

Telnetの操作画面へ戻るには、一般的にCtrl]を同時に押します。

Ctrl + ]

telnet>と表示されたら、quitを入力します。

telnet> quit

元記事ではCtrl + Cで終了すると説明していましたが、Telnetクライアントのコマンドモードへ移動するときはCtrl + ]を使います。

Telnetの結果はどう見ればよい?

Telnetの結果は、主に以下のように判断します。

結果 考えられる状態
接続メッセージや空の画面になる TCP接続に成功した可能性が高い
Connection refused 接続先には到達したが、サービスが待ち受けていない可能性がある
接続がタイムアウトする 通信経路やファイアウォールで遮断されている可能性がある
ホスト名を解決できない DNSやホスト名の指定を確認する

接続成功は、アプリケーション全体の正常動作を保証するものではありません。

例えば80番ポートへ接続できても、Webサーバーが正しいページを返せるかは別に確認する必要があります。

Telnetで接続できないときの確認方法

Telnetで接続できないときは、順番に原因を切り分けます。

接続先を間違えていないか確認する

最初に、IPアドレス、ホスト名、ポート番号を確認します。

telnet 192.168.1.10 80

80番と8080番など、似たポート番号を間違えていることもあります。

pingで通信経路を確認する

次に、pingで接続先へ通信できるか確認します。

ping 192.168.1.10

ただし、pingに応答しないよう設定されているサーバーもあります。

pingが失敗しただけで、サーバーが停止しているとは限りません。

pingコマンドについては、pingコマンドの使い方と通信確認の方法で解説しています。

サーバーがポートを待ち受けているか確認する

サーバーへログインできる場合は、ssコマンドで待受ポートを確認します。

sudo ss -lnt

80番ポートを確認するなら、grepで絞り込みます。

sudo ss -lnt | grep ':80'

何も表示されない場合は、Webサーバーが起動していない、または別のポートで待ち受けている可能性があります。

ファイアウォールを確認する

サーバーがポートを待ち受けていても、ファイアウォールやクラウドのセキュリティ設定で遮断されることがあります。

Linuxのファイアウォールだけでなく、ルーター、AWSのセキュリティグループ、社内ネットワークのアクセス制御も確認しましょう。

Telnet以外の確認方法

現在は、目的に合わせて別のコマンドを使うことも増えています。

目的 コマンド
WindowsでTCPポートを確認 Test-NetConnection
LinuxでTCPポートを確認 nc
HTTP・HTTPSを確認 curl
サーバーへ安全に遠隔接続 ssh

Windows PowerShellでは、以下のように確認できます。

Test-NetConnection example.com -Port 80

Linuxでncが使える場合は、以下のように実行します。

nc -vz example.com 80

サーバーへログインして操作したい場合は、TelnetではなくSSHを使います。

ssh user@192.168.1.10

TelnetをすべてSSHに置き換えるというより、目的に合ったコマンドを選ぶことが大切です。

Telnetコマンドの使い方まとめ

今回は、Telnetコマンドの使い方を解説しました。

基本的な書式は以下の通りです。

telnet 接続先 ポート番号

Telnetは、以前はサーバーやネットワーク機器の遠隔操作にも使われていました。

しかし、通信が暗号化されないため、遠隔操作にはSSHを使うのが基本です。

現在は、TCPポートへ接続できるか確認するときに使うことがあります。

私もネットワークのトラブルを調査するときは、いきなり設定を変更するのではなく、接続先、通信経路、待受ポート、ファイアウォールの順番で確認します。

Telnetは、その中の接続確認に使う1つの道具です。

コマンドだけを覚えるのではなく、Telnetで何を確認できて、何を確認できないのかまで理解しておきましょう。

ネットワークを実際に構築しながら学びたい方へ

Telnetの使い方が分かっても、IPアドレス、ポート番号、ルーティング、ファイアウォールの関係が分からないと、接続できない原因を判断するのは難しいです。

InfraAcademyでは、Packet Tracerなどを使ってネットワークを構築しながら学習できます。

InfraAcademyのネットワーク講座を見る

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る