telnetコマンドの使い方|有効化とポートの確認

telnetコマンドの使い方

telnetコマンドは、「telnet ホスト名 ポート番号」と打って、相手のそのポートにTCPでつながるかを確かめる道具です。Windowsでは最初は入っていないので、Telnetクライアントを有効にしてから使います。画面が切り替われば接続成功、「接続に失敗しました」なら届いていません。

この記事でわかること

  • Windowsでtelnetを使えるようにする手順(画面・コマンド)
  • telnetでポートが開いているかを確かめる書き方
  • 真っ黒な画面・失敗・応答なしの結果の読み分け
  • Ctrl+]での抜け方と、SMTPなどの手動確認
  • Cisco機器からのtelnetと、telnetが無い環境での代わり

一次情報: Microsoft Learn「telnet」(参照)/Microsoft Learn「Enable-WindowsOptionalFeature」(参照)/RFC 854「Telnet Protocol Specification」(参照)/RFC 5321「Simple Mail Transfer Protocol」(参照)※2026年10月時点

telnetでのポート確認は、監視・運用の現場で毎日のように使う作業です。監視の仕事からインフラエンジニアへ進む道筋は、別の記事にまとめました。

目次

telnetコマンドとは?ポートにつながるかを試す道具

telnetコマンドとは、相手の機器にTCPでつなぎ、文字をそのままやり取りするためのコマンドです。もとは遠隔ログインのための道具で、RFC 854で決められたTelnetは23番ポートを使います。

今の現場では、ログインよりも「このポートにつながるか」を確かめる目的で使われることがほとんどです。ポート番号を付けて打つと、23番以外のどのTCPのポートにも接続を試せます。

telnetコマンドの主な使い道
使い道打ち方の例今も使うか
ポートの疎通確認telnet 192.0.2.10 443よく使う
メールサーバーの応答確認telnet mail.example.com 25切り分けで使う
ネットワーク機器へのログインtelnet 192.0.2.1古い機器だけ。今はSSHが基本

アドレスや名前は説明用の値です。Telnetの通信は暗号化されず、パスワードも読める形で流れます。ログインにはSSHを使い、telnetは「つながるかの確認」に限るのが今の使い分けです。

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

Windows 10・11では、telnetは最初から入っていません。そのまま打つと「’telnet’ は、内部コマンドまたは外部コマンド…として認識されていません。」と表示されます。

Telnetクライアントを有効にする方法は、画面とコマンドの2通りです。

  1. コントロールパネルで「プログラムと機能」を開く
  2. 左の「Windowsの機能の有効化または無効化」を選ぶ
  3. 一覧の「Telnet クライアント」にチェックを入れてOKを押す
  4. 新しくコマンドプロンプトを開き直し、telnetと打って「Microsoft Telnet>」が出れば準備完了

コマンドで入れる場合は、管理者として開いたPowerShellかコマンドプロンプトで次のどちらかを打ちます。

Enable-WindowsOptionalFeature -Online -FeatureName TelnetClient   (PowerShell)
dism /online /Enable-Feature /FeatureName:TelnetClient           (コマンドプロンプト)

Linuxでは、Debian・Ubuntu系なら「sudo apt install telnet」、RHEL系なら「sudo dnf install telnet」で入れられます。

telnetでポートが開いているかを確かめる

書き方は「telnet 相手 ポート番号」です。Microsoftの資料どおり、ポート番号を省くとTCPの23番につなぎに行きます。

telnet 192.0.2.10 443

結果の読み分け

telnetは、成功したときほど何も表示されません。初めて使うと、ここで戸惑う人が多いところです。

telnetの結果と意味(Windows)
画面の様子意味次にすること
画面が真っ黒に切り替わり、カーソルが点滅接続成功。ポートは開いているCtrl+]で抜ける
「220 …」など1行の文字が出る接続成功。相手のソフトが名乗った名乗りの中身を読む
「ホストへの接続を開けませんでした。…接続に失敗しました」つながらなかった拒否か応答なしかを区別する
長く待たされた末に失敗途中で捨てられている可能性が高いファイアウォールや経路を疑う

Linuxのtelnetは、成功すると「Connected to 192.0.2.10.」と「Escape character is ‘^]’.」の2行を出します。失敗のときは「Connection refused」か、しばらく待ってからの時間切れです。

失敗の出方で、止まっている場所が変わる

すぐに失敗する
起きていること
相手まで届いたが、そのポートで待っているソフトがいない
Linuxの表示
Connection refused
疑う場所
サーバーのサービスが止まっている、番号の打ち間違い
しばらく待って失敗する
起きていること
返事が来ない。途中で通信が捨てられている
Linuxの表示
Connection timed out
疑う場所
ファイアウォール、経路、IPアドレスの誤り

図:すぐ失敗ならサーバー側、待たされて失敗なら途中の経路を先に見る

telnetの抜け方(Ctrl+])

接続が成功すると、telnetは打った文字をそのまま相手へ送り続けます。普通にexitと打っても抜けられないことが多いので、抜け方を先に覚えておきます。

  1. Ctrl+](Ctrlを押しながら「]」)を押す
  2. 「Microsoft Telnet>」のプロンプトに戻る
  3. quit(またはq)と打ってEnter

日本語キーボードでも、Ctrlと「む」のキーにある「]」の組み合わせです。Linuxでは「telnet>」に戻るので、同じくquitで終わります。

SMTPやHTTPを手で話して確かめる

telnetは打った文字をそのまま送るので、文字で会話するプロトコルなら、手で話しかけて応答を確かめられます。メールサーバーの切り分けでよく使う方法です。

telnet mail.example.com 25
220 mail.example.com ESMTP
EHLO client.example.com
250-mail.example.com
250 SIZE 52428800
QUIT
221 Bye

RFC 5321の決まりでは、接続するとサーバーが220で始まる挨拶を返します。EHLOには250、QUITには221が返り、そこで接続が閉じる流れです。220の挨拶が出れば、ネットワークもメールソフトも動いていると判断できます。

ただし、今のメールの送信は587番や465番で暗号化して行うのが一般的です。暗号化した通信の中身は、telnetでは読み書きできません。その場合はopenssl s_clientを使います。

Cisco機器からtelnetでポートを確かめる

ルーターやスイッチの上でも、telnetでポートへの接続を試せます。機器から先のサーバーまで届くかを、その機器の位置から確かめたいときに便利です。

Router# telnet 192.0.2.10 80
Trying 192.0.2.10, 80 ... Open

「Open」なら接続成功です。「% Connection refused by remote host」なら相手まで届いて拒否、「% Connection timed out; remote host not responding」なら返事がありません。抜けるときは、Ctrl+Shift+6を押してからxを押します。

機器のtelnetログインを止めておく

機器へのログインにtelnet(23番)を使える状態は、パスワードがそのまま流れる入口そのもの。line vtyで「transport input ssh」と設定すると、SSHだけを受け付けます。

Router(config)# line vty 0 4
Router(config-line)# transport input ssh

この設定でも、機器から外へ向けてtelnetでポートを試す使い方には影響しません。

telnetが使えないときの代わりのコマンド

telnetを入れられない会社のPCも多くあります。ポートの確認だけなら、最初から入っている別のコマンドで代わりがききます。

ポートの確認に使えるコマンド
環境コマンド成功の目印
Windows(PowerShell)Test-NetConnection 192.0.2.10 -Port 443TcpTestSucceeded : True
Linux・Macnc -zv 192.0.2.10 443succeeded/open の表示
Linux・Mac・Windowscurl -v telnet://192.0.2.10:443Connected to の行

Test-NetConnectionは、結果をTrue・Falseで返すので、記録に残すときにも読み違えません。対話で中身をやり取りしたいときはtelnet、つながるかだけならTest-NetConnectionやnc、と分けると手早く進みます。

よくある質問

「’telnet’ は…認識されていません」と出ます

Telnetクライアントが入っていません。「Windowsの機能の有効化または無効化」でTelnetクライアントにチェックを入れるか、管理者のPowerShellでEnable-WindowsOptionalFeature -Online -FeatureName TelnetClientを打ちます。入れた後は、コマンドプロンプトを開き直してください。

telnetで画面が真っ黒になったまま動きません

接続に成功しています。相手のポートが開いていて、こちらの入力を待っている状態です。確認が済んだら、Ctrl+]を押してからquitと打てば抜けられます。

telnetでUDPのポートは確かめられますか?

確かめられません。telnetはTCPでつなぐ道具です。DNS(53番)やSNMP(161番)などUDPのサービスは、nslookupなどそのサービス用のコマンドで応答を見て確かめます。

telnetとSSHの違いは何ですか?

どちらも遠隔ログインに使えますが、telnetは通信を暗号化せず、SSHは暗号化します。telnetは23番、SSHは22番が既定のポートです。ログインにはSSHを使い、telnetはポートの確認に使うのが今の使い分けです。

telnetを有効にしたままでも安全ですか?

Telnetクライアントは、こちらから外へつなぐための道具にすぎません。入れただけで外からの入口ができるわけではありません。外からの接続を受けるのは「Telnetサーバー」のほうで、これを動かすのは避けてください。

まとめ

  • telnetは「telnet 相手 ポート番号」で、TCPのポートにつながるかを試す道具
  • Windowsは最初は入っていない。機能の有効化かEnable-WindowsOptionalFeatureで入れる
  • 真っ黒な画面や名乗りの1行は成功。すぐ失敗はサーバー側、待たされて失敗は途中の経路を疑う
  • 抜けるときはCtrl+]→quit。Cisco機器ではCtrl+Shift+6→x
  • ログインはSSHに任せ、ポートの確認だけならTest-NetConnectionやncでも代わりがきく

telnetでポートまで届くと分かったら、次はそのサーバーが正しく応答しているかを見る段階です。届かなかったときは、pingやtracertで途中の経路を順に確かめていくと、止まっている場所が絞れます。

ポートの確認や切り分けを自分でこなせる力は、SES常駐から一段上の職場へ移るときに評価されます。SESから抜け出す転職の進め方を、段階ごとに整理した記事です。

SESを抜け出す転職の進め方を見る


免責事項

※本記事はRFC・Microsoftの公式ドキュメントなどの公開情報をもとに整理したものです。コマンドの表示や挙動は、OSや機器のバージョン・環境によって変わる場合があります。会社のPCや業務の機器では、所属先のルールと各製品の最新資料をあわせてご確認ください。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Tanabeです。新卒でSIerに入り、ネットワークの設計から構築、運用保守、クラウド移行まで10年やってきました。その間に転職を3回、CCNPも取りました。

正直に言うと、資格を取っても年収はすぐには上がりませんでした。1回目の転職は失敗、2回目でようやく150万円上がり、3回目で今の事業会社に落ち着いた。動いてみて分かったのは、資格の有無より「現場で何を任されてきたか」で評価が決まる、ということです。

エージェントの言葉を鵜呑みにして、危うく後悔しかけた経験もあります。だからこそ、自分がやらかした失敗をそのまま書いて、同じ回り道をしなくて済むように残しています。転職を考え始めた人が、条件で損をしないための材料にしてもらえたら嬉しいです。

目次