WWWサーバの動作確認方法
自宅サーバをインターネットに公開する方法に関して、一番ベーシックなWWWサーバの動作確認方法を簡単に記載したいと思います。ADSL環境を前提にしていますが、基本的な考え方は他のアクセス(例えば光アクセス)でも同じですので、参考にしてください。
自宅WWWサーバが、「インターネットに公開できているか?」、「インターネットからどのように見えているか?」をテストできるサービスを試験的に始めました。こちらでどうぞ。(2002.07.28)
■前提条件
ここで述べるWWWサーバの動作確認方法の前提となる構成は、下記のとおりとします。図では、Ruterとして記述していますが、ADSLの場合はこれがADSLモデムでしょうし、光のサービスならブロードバンドルータになると思います。また、RouterとHUBを分けて記述していますが、HUB内臓ルータでもロジカルには下記と同じです。
OSは、Linuxまたは、Windows2000Proをベースに記載します。それ以外、おやじの環境では確認しようがないのと、他の環境で動かしたことがないので、あしからず。
以外に多い落とし穴として、「サーバ機で、インターネットアクセスが正常にできること」というのを、前提条件にあげておきます。これは、DNSの設定等がうまくいっておらず、インターネット通信そのものができない状況でいろいろ試験しても始まりませんので。まず、サーバ機と言えども、インターネットクライアントとして動作するか確認しておきましょう。
- ローカルのプライベートアドレス体系は、ルータのローカル(LAN)側アドレスは192.168.1.1、サーバ機は192.168.1.254、クライアント機は192.168.1.2としています。
- ルータのWAN側アドレス(グローバルアドレス)は、202.123.222.231が割り当てられているものとしています。
- サーバ機には、既にHTTPD(Apache、Black Jumbo Dog、ANHHPD等)がインストールされ、設定が完了しているものとします。また、ドキュメントルート又はユーザディレクトリにindex.html/index.htmが置いてあるものとします。CGI関係のエラーがでると訳がわからなくなるので、CGIの無い単純なhtmlがいいでしょう。
- DDNSを利用していたり、DNSを設置している場合もあるでしょうが、ここではWWWサーバに置かれた自分のホームページをインターネットに公開することを目的としていますので、全てIPアドレスの直打ちで試験します。見えなければ、名前解決もあったものではありません。一気にやってしまうと、問題発生時に何が問題なのか切り分けが困難になります。
- 試験するサーバ機、クライアント機のWWWブラウザで、インターネット上のほかのホームページは既に見えているものとします。サーバ機なのでと、DNSの設定等がされておらず、アクセスできない方が意外といます。なお、Proxyを設定している場合は、設定を解除してください。ファイヤウォールも止めてください。動いてから設定しましょう。
■サーバ機での動作確認 (図中(1))
サーバ機のWWWブラウザから、「http://127.0.0.1/」又は「http://127.0.0.1/~oyaji/」(おやじのように、ユーザディレクトリで公開する場合。)と入力して、設置したindex.html/index.htmが見えるか確認します。見えない場合は、以下の点を確認してみましょう。 WWWブラウザのエラー状態で、確認すべき事項が異なります。以下は、Internet Exploreの場合で示します。
なお、最初の試験は、ドキュメントルートで行い動作確認してから、ユーザディレクトリで試験されるといいでしょう。ユーザディレクトリで公開する場合の設定に問題がある場合もありますので、なるべくシンプルな設定で試験して、順次自分にあった環境に変更したほうが、問題発生時に解決も簡単であり、何が問題なのかはっきりするでしょうから。
- 「DNSエラー」と表示される。
以降も同様ですが、この表示の場合は、WWWサーバそのものにアクセスできていません。サーバ機でこの状態ということは、サーバ機でHTTPD(WWWサーバソフト)そのものが起動していないか、HTTPDのサービスポート:80がファイヤウォールソフトやウイルス対策ソフト等で閉じられている等の原因が考えられます。Linuxの場合、インストール時のファイヤウォールの設定でHTTPを許容しなかった等が考えられるので調査しましょう。
このとき、インターネットに公開するのですから、全てのアドレスからのアクセスを許容できているか確認しましょう。うまく設定できているかどうか判断できないのなら、試験中は外しておき、試験後に起動して問題がないか確認すると、切り分けが簡単と思います。
・HTTPDが起動しているかどうかの確認方法
Linuxなら、「netstat -ln」で、特にポート番号を変更していなければ80番ポートがListenと表示されていれば、起動されています。80番がない場合は起動できていませんので、調査しましょう。
Windows2000にも、netstatコマンドがあるのですが、こちらは、接続中のポートは表示できるのですが、待ち受けているポートを表示できません。従って、HTTPDの動作確認にはなりません。HTTPDをサービス起動しているなら、サービスの管理で確認できるでしょう。
おやじの不勉強で、Windows2000のnetstatでも待ち受けポートがわかるようです。下記のように、「-an」オプションを指定すれば、特にポート番号を変更していなければ80番ポートがLISTENINGと表示されていれば、起動されています。(下記は、FTPの制御コネクションとWWWが動作している場合です。)
C:\>netstat -an
Active Connections
Prot Local Address Foreign Address State
TCP 0.0.0.0:21 0.0.0.0:0 LISTENING
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
・
・
・
|
ただ、一般的に手順どおり起動していて、HTTPDが起動しないことは考えにくいので、規制されていて繋がらないと考えたほうがいいでしょう。
また、DOSプロンプト(コマンドプロンプト)やターミナルエミュレータで「telnet
127.0.0.1 80」と入力すると、ホストに接続できないというメッセージが出るはずです。このとき、HTTPDにアクセスできていればコマンド入力待ちになるので、「GET」と入力すると、htmlが表示され切断されるはず。入力を間違えると、そのときのエラーコードを表示するhtmlが表示されます。
- 「ページが見つかりません。ページが表示できません。」と表示される。
この場合は、HTTPDにはアクセスできているが、何らかの原因で表示できていない状態です。エラーコードでおおよその原因がわかります。よく見られるエラーコードを以下に示しますが、googleあたりで「httpd
403 404 500」等で検索すると、いろいろなhttpdの各コードのエラー状態がわかるでしょう。
こちらのおまけも参考にしてください。
- 403 :
パーミッションがおかしい等でアクセスできない。
- 404 : html文書がない、指定ミス等で文書が見つからない。
- 500 :
サーバ内部のエラーで、主にCGI/SSI関係の実行エラー。
■クライアント機でのローカル動作確認 (図中(2))
クライアント機のWWWブラウザから、「http://192.168.1.254/」又は「http://192.168.1.254/~oyaji/」と入力して、設置したindex.html/index.htmが見えるか確認します。サーバ機で見えてクライアント機で見えない場合は、ローカル内(家庭内)のネットワークの問題か、HTTPDでアクセス制限されている可能性があります。
- ネットワークの問題としては、ケーブルやHUBの接続、サーバ機のTCP/IP関係の設定(IPアドレスやサブネット等)が誤っている。(クライアントは、既にルータ経由でインターネットにアクセスできているので問題はない。)
この場合、pingが通るかどうか確認する。pingが通る場合は、2項をチェックする。pingはDOSプロンプト(コマンドプロンプト)で、「ping
192.168.1.254」と入力して、応答を確認する。
- HTTPDでのアクセス制限方法はHTTPD毎に異なるので、ドキュメントを参考に見直す。一般的に、デフォルトでインストールしていれば、制限されていることは無いはず。
■インターネット側からの動作確認
(図中(3/4/5/6))
ここからが本番ですが、ここまできてインターネット側からアクセスできない場合は、ほとんど試験方法の問題か、ルータの設定の問題と考えられます。
試験に先立ち、ADSLルータのWAN側(インターネット側)に割り当てられたグローバルアドレスをあらかじめルータにアクセスして控えておきましょう。ここでは、202.123.222.231として説明します。
まずは、手っ取り早く、一挙両得の方法を示します。それは、セキュリティチェックサイトを利用する方法です。
こちらのページの下の方にある「
セキュリティチェックサイトでの確認」を参考に、クライアントもしくはサーバ機からサイトにアクセスし、セキュリティチェックを実施してください。
結果、80番が「Open」になっていればしめたもの、もう繋がったも同然です。すぐに、おやじの
WWWサーバテストを実施しましょう。自分のホームページが見えるはずです。
しかし、安心しないでください。その他に「Open」となっているポートは意識してインターネットに公開しているポートですか?もし、意図しないものが開いているようでしたら、危険ですので、調査してそのデーモンやソフトを止めたり、ルータやファイヤウォールの設定で閉じましょう。
80番ポートが「Open」ではなかった場合は、このままではインターネット側からは見えません。上記の、サーバ機本体およびクライアント機からのローカルでのアクセスがうまくいっていて、ここで80番ポートが「Open」でない原因としては、ファイヤウォールの設定とルータの設定ミスが考えられます。
ファイヤウォールの設定としては、ローカルアドレスからの接続は許容されているが、グローバルアドレスからの接続が規制されているなどが考えられます。ファイヤウォールを一時的に止めてみるとすぐわかります。これで駄目な場合は、ルータの設定を確認します。
ルータによって表現は異なりますが、まずチェックしなければならないのは、インターネット側からきたWWWサーバへのアクセスパケット(TCP/IPの80番ポート)が正しくサーバ機にルーティングできるようになっているかどうかです。この機能は、「アドレス変換」、「スタティックNAT」、「DMZ機能」などと呼ばれているもので、ルータの機種により表現や機能が異なりますので、説明書をよく読みチェックしましょう。一般的には、「サーバを公開するには・・・」といった説明があるはずです。 おやじの設定は
こちら。
以下に、インターネット側からの試験方法を載せておきますので、参考にしてください。おやじがWWWサーバテストサービスを始める前にまとめたものです。というか、おやじは自分のサービスは使用できませんので、この方法でしか試験できません。
- 試験方法の誤り(図中
(3))
よくある試験ミスは、クライアント機からグローバルアドレスを指定して「http://202.123.222.231/」と入力すると見えない、あるいはルータの設定画面へのアクセスになってしまうというものです。ホームページが見えないかルータの設定画面へのアクセスになるかは、ADSLルータの機種(作り)によって異なりますが、これはADSLルータの仕組みからは当然のことであり、この方法では一般的に試験はできません。一般的にと言ったのは、おやじは確認していませんが、極まれにLAN側からルータのWANポートに割り当てられたグローバルアドレスにアクセスすると、LAN側に戻してくれる機種があるそうです。この場合も、実際にはインターネット側から入ってくるので最終的には以下の試験は実施したほうがいいと思います。
サーバ名又はIPの場合でのアクセスの場合なら、hostファイルを使用することにより無理やりローカルアドレスに変換して自分のHPを見る方法もありますが、インターネット側からのアクセスの試験にはなっていませんし、ローカルで確認するなら、はじめからローカルアドレスでアクセスすればいいだけですので無意味と思います。
[参 考]
なぜこの方法ではだめなのか?そもそもADSLルータ(家庭用のブロードバンドルータを含む。業務用の多ポートルータならいろいろ設定で対応可能。)は、WAN側とLAN側を明確に意識しており、これらのポート間でNAT(IPマスカレード)やフィルタリング機能が働くようになっている。また、ルータの一般的な仕様として、流入してきたポートへパケットを戻すということはない。(本来ならルータがレイヤ3中継しなくても、そのポート配下のレイヤ2の通信でそのパケットは通信できるからであり、ルータが戻すと同じパケットが2個流れてしまうため。)
- インターネット側からの試験(図中 (4))
本方法は、親戚や友人に現在のグローバルアドレスを通知して見てもらう方法である。簡単ではあるが、おかしい状況を自分自身が確認できないので、相手の手を煩わせるだけなので、おまりお勧めできない。
- インターネット側からの試験(図中 (5))
サーバ機以外でモデム経由でインターネットアクセスできる環境があれば、モデム経由でインターネットに接続し、現在のグローバルアドレスを「http://202.123.222.231/」と入力して確認する方法である。通信費用がかかるので、この方法もあまりお勧めではないが、モデム経由で自分のホームページをアクセスしてくれる方の状況と同じなので、特に画像が多い場合の表示時間の確認としては、試してみる価値はある。ブロードバンド環境に慣れてしまうとしまうと、意外に見落としがちな落とし穴である。(と言ってる本人のページが重いのですが、なるべく分かり易くと思うと、どうしても重くなってしまいます。)
また、他のサービス(メール等)を外部から利用できるか試験するには、この方法が一番確実でしょう。
- インターネット側からの試験(図中 (6))
ここは、おやじの
WWWサーバテストを使用してください。以下は、WWWサーバテストを使用できないおやじの方法と思ってください。
本方法が、自分のホームページがインターネット側からどう見えるかという点では本命の確認方法です。この方法は、2項に示した方法の親戚や友人の変わりをプロキシサーバにしてもらうことにより、自分のホームページを家庭内からインターネット経由で見る方法です。プロキシとしては、契約しているプロバイダが持っていれば、それを使うと良いでしょう。使い方は、各プロバイダから提示されていると思いますのでそれを参考にしてください。おやじのように、プロバイダから公開されていない場合は、公開/匿名プロキシを使用します。ただ、自由に使えるプロキシがほとんどなく、おやじが知っているのは下記の2つだけです。そのため、非常に混んでおり、レスポンスが悪かったりタイムアウトしてしまう事がありますので、時間帯を変えて試験するか、3項を併用するようにしましょう。
- Magus
Network
クライアント機のブラウザに、「 https://proxy.magusnet.com/-_-http://202.123.222.321/」 と現在のグローバルアドレスを入力して確認します。本プロキシはSSL対応ですので、冒頭のところは、「https」ですので間違えないように。表示されるまで非常に時間がかかりますので、じっくり我慢して待ちましょう。ルータの設定が誤ってなければ必ず表示されます。
- Anonymizer
Anonymizer-Japanまたは
本家にアクセスして、「無料お試しトライアル」のURL欄(本家なら、左の画面)に現在のグローバルアドレスを「[202.123.222.321」と「http://」以下に入力して、「送付(GO)」を押します。これも、じっくり待ちましょう。こちらは、ホームページの上部にバナーが表示され、少し邪魔ですが画面が表示されれば大丈夫。
ただ、URLで入力できる桁数とCGIが制限されており、表示できませんので注意が必要です。
Top Pageへ