Webサーバーに接続してみる

 今回は,身近なWebサーバーやメール・サーバーにtelnetコマンドを使って接続して,サーバー・ソフトの種類を調べたり,メールを送信したりするテクニックを紹介しよう。

 Webサーバー・ソフトの種類がわかると,トラブルが発生したときに役立つことがある。例えば,自分のWebサイトにあるCGIスクリプトを組み込んだら動かなくなったというケースがあったとする。別のWebサイトではこのCGIスクリプトが問題なく動いているとすると,サーバー・ソフトの種類やバージョンを調べることで,問題の切り分けや解決につながることがある。

 それでは,Webサイトで稼働しているサーバー・ソフトの種類をtelnetコマンドを使って調べてみよう。コマンド・プロンプトを起動して,以下のように打ち込む。

 D:¥>telnet 192.168.100.38 80

 実行すると,Webサーバーに接続してセッション・モードに切り替わる(図5)。ただし,このままだと端末のキーボードから入力した文字が表示されない。一般的なWebサーバー・ソフトにはリモート・エコー機能がないか,有効になっていないからだ。

図5●Webサーバーへ接続する
図5●Webサーバーへ接続する
[画像のクリックで拡大表示]

 そこで端末側のリモート・エコー機能を有効にする。そのためには,いったんコマンド・モードに戻り,setサブコマンドに「localecho」オプションを組み合わせて以下のように打ち込む。

 Microsoft Telnet>set localecho

 実行すると「ローカル エコー: オン」と表示され,端末で入力した文字を表示するようになる。

 次にEnterキーを押してセッション・モードに戻る。セッション・モードなので,Webサーバー・ソフトのコマンドを入力していく。ここでは,Webサイトのindex.htmlファイルを検索し,そのヘッダー情報を表示するためのコマンドを入力する。こうすると,Webサーバーからヘッダ情報がメッセージとして送られてくる(図5の下)。そのメッセージの上から3行目を見ると,サーバー・ソフトとして「Apache(アパッチ)」を使用していることがわかる。

メール・サーバーに接続してみる

 今度はメール・サーバー(SMTPサーバー)にtelnetコマンドで接続して,自分あてにメールを送信してみよう。

 まずコマンド・プロンプトを起動し,接続先のSMTPサーバーのIPアドレスとポート番号を指定して,telnetコマンドを実行する。以下のように打ち込む。

 D:¥>telnet 192.168.100.38 25

 実行すると,画面が切り替わり,「220 ESMTP mail.bitscreen.jp」というメッセージが表示される図6)。これでセッション・モードに入ったので,送信元アドレス,あて先アドレス,件名,本文の順にテキストを打ち込んでいく(図6参照)。最後に「.(ピリオド)」を入力してEnterキーを押すと入力を終了したという指示になる。ここで「250 OK」と表示されたらメール送信は成功だ。自分のメーラーを確認してみると,件名「test message」で本文「This is a test message」というメールが指定したメール・アドレスから届いていることが確認できるはずだ。

図6●メール・サーバーへ接続する
図6●メール・サーバーへ接続する
[画像のクリックで拡大表示]

 なお,telnetコマンドで接続できないときは,図7のようなエラー・メッセージが表示される。

図7●接続に失敗したときの画面例
図7●接続に失敗したときの画面例
[画像のクリックで拡大表示]

 この場合の原因としては,「DNSによる名前解決ができない」,「接続するIPアドレスが間違っている」,「接続先のホストにtelnetサービス機能がない」,「そもそもネットワークに接続していない」,「telnetサービスが使う23番ポートがファイアウォールで遮断されている」──などが考えられる。