TelnetでTCP通信の確認

前回、任意のポート番号をLISTENさせるやり方をまとめたが、
今回は逆にサーバのLISTENポートに対して接続確認を行うやり方をメモしておく。

通信の確認にはTelnetを使用する。
Telnetと言えばリモート接続であるが、最近はセキュリティの観点から暗号化通信に押され、
平文通信であるTelnetの肩身は狭くなってきている。

しかし、TelnetはTCP通信の確認にも利用出来る為、
最近ではこちらの出番のほうが多くなってきているのではないだろうか。

インフラエンジニアとしては基本的な事であり、
今更特筆することでもないが、簡単にまとめてみたいと思う。


ポート番号指定のTelnet


Telnetはポート番号指定により、TCP通信のテストに使用できる。
コマンドは以下のように記載し、WindowsでもLinuxでも変わりはない。

 telnet [接続先IPアドレス] [対象ポート番号]


基本的にEnd-to-Endで確認を行う為、FWのpolicyやL3スイッチのACL、
サーバ自身のWindwsファイアウォールやiptablesなどの設定の正常性も
合わせて確認をすることができ、とても重宝する。

telnet_port.png

疎通確認をしたいが、アプリがまだ用意できていないなどは良くある話なので、
そんなときはTelnetにて簡易的なテストを実施しておけばインフラとして安心できる。

例えばサーバ(192.168.1.XX)でTCP12345でLISTENしているとすると、
下記のようにコマンドを打てば良い。

 telnet 192.168.1.XX 12345


接続した後はとても分かりづらいが、それぞれ下記のように見える。


◆Windowsの場合
telp000.JPG

コマンドプロンプトからの接続、ほぼこのように真っ黒な画面になる。
切断する場合は、Ctrl+] をキーボードから入力し、その後qを入力しTenletモードから抜ける。

telp001.JPG


◆Linuxの場合
telp002.JPG

こちらも分かりづらいが「Connected to ~」と表示されていれば接続されている。
切断時はWindowsと同様にCtrl+] → qと入力すれば良い。

telp003.JPG

やり方はとても簡単だが、確認できる観点が多いことが利点と言える。
接続された画面が分かりづらいが、ご愛嬌と言ったところか。


切断の仕方については、Ctrl+CやDでも切断できる場合もある。
しかし、たまに正常に解放されないことがある。

以前、Ctrl+CやDを受け付けれもらえず、サーバが掴んだまま離してくれなくなり、
冷や汗をかきながらTelnetの切断方法をググったことがあった。

LISTENしているデバイスが何かによってキャンセルできるか否かは変わってくるので、
Telnetの正式な切断の仕方は覚えておいた方が良い。



[改訂第3版]Linuxコマンドポケットリファレンス


人気記事