Telnetテストポート接続性
1916 ワード
telnetを使用してポートの接続性を優雅にテストする方法
telnetコマンドはTELNETプロトコルのユーザーインタフェースで、コマンドモードとセッションモードの2つのモードをサポートします.telnetでは多くのコマンドがサポートされていますが、ほとんどの場合、ターゲットホストがポートを開いているかどうかを確認するために使用します(デフォルトは23).
実行結果は2つあります.
ポートが開いていません$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused
コマンドが終了しました.
ポートが開いています$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
コマンドは終了しません.ヒントに従ってEscape character is'^]'.終了文字は'^]'(CTRL+])であることがわかります.この場合、他の文字を入力して終了させることはできません.CTRL+Cはできません.CTRL+]を入力すると自動的に実行され、コマンドモードに入ります.^]
telnet>
quitを再実行してから本当に終了します.telnet> quit
Connection closed.
ここで、Escape characterはパラメータ-eを使用してカスタマイズできます.$ telnet -e p 101.199.97.65 62715 # p
Telnet escape character is 'p'.
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is 'p'.
p
telnet> quit
Connection closed.
それでもtelnetを終了するのは面倒です.では、さらに、スクリプトに現れたらtelnetをどのように(優雅に)脱退すればいいのでしょうか.
イニシアチブ
実際には、
結果を出力した直後に終了$ echo "" | telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host. #
$ echo "" | telnet 101.199.97.65 62715
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused #
出力結果後遅延終了
sleep 2はtelnetに結果を出力させた後、2秒滞在した後にコマンドモードを終了させる.$ sleep 2 | telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host.
この方法では、標準出力と標準エラーをファイルにリダイレクトし、ファイルの内容を分析することでポートのオープン状態を判断できます.
$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused
$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
^]
telnet>
telnet> quit
Connection closed.
$ telnet -e p 101.199.97.65 62715 # p
Telnet escape character is 'p'.
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is 'p'.
p
telnet> quit
Connection closed.
$ echo "" | telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host. #
$ echo "" | telnet 101.199.97.65 62715
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused #
$ sleep 2 | telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host.