ブラウザが正しく表示されないときの対処法

Introduction

おそらく、殆どの人が一度はこのような画面を目にしたことがあるでしょう。

普通ならば、「あー調子わりー」と言ってよく原因がわからないままパソコンを再起動させたり、ルータの線を繋ぎ変えたり、辛抱強く待ったりするのではないかと思います。
今回はそんな時に「ここに問題がある!」とスマートに突き止めるためのステップを紹介します。
問題がはっきりすれば、ネットワーク管理者にも相談しやすくなりますし、解決に要する時間も短くなるはずです。

ネットワーク概要図


図のように、パソコンからウェブまでの道のりを5つのSTEPでチェックしていきましょう。

1. ルータとパソコン間に問題はないか?Part 1

まず、ルータとパソコンの間の通信に問題が無いかを確かめます。
早速、ルータが割り当てたIPアドレスをパソコンが取得できているかどうかを確かめましょう。

ルータって?

ざっくり言うと、ネットとパソコンの中継地点のようなものです。複数のパソコンとのデータのやり取りをコントロールします。

IPアドレスって?

パソコンのネット上での住所みたいなものです。世界で一つだけの番号が割り振られます。

そのために、コマンドラインを開いて以下のコマンドを打ちます。(コマンドはOSによって異なるので注意!今記事はLinuxを想定しています。)
$ ifconfig
すると、各インターフェイスの稼働状況、設定されているIPアドレス、ブロードキャストアドレスなどが表示されます。そしてethやenから始まるのがあなたのパソコンに搭載されているイーサネットワークインターフェイスを表しています。これらを中心に見て、

  • errorがない
  • UP(起動中)とRUNNING(動作中)が表示されている

ことを確かめてください。

上手くいかないときは?
  • ワイヤレスネットワーク設定はONになっているか?
    • ワイヤレスで通信する場合は、その機能がONになっているかを確かめましょう。

  • ルータのDHCPサーバに問題がある
    • ルータに入っているDHCPサーバってやつが、繋がっているパソコンのIPアドレスを振り分けて交通整理を行っています。ネットワーク管理者に「ルータのDHCPサーバがおかしいかも!」と相談してみましょう。
  • 入ろうとしているネットワークが事前登録されたIPアドレスしか受け付けないタイプかもしれない
    • 初めて繋ごうとしているネットワークでこの現象が起きたときは、これも疑ってみましょう。多くのルータは、つながれたパソコンに対して自動的にIPアドレスを割り当てるのですが、セキュリティのために事前に登録されたIPアドレスに対してしかデータ通信の中継を行わないものもあるのです。
    • ネットワーク管理者に「ネットワークに入るためのIPアドレスを教えてください」と聞いてみましょう。
    • 教えてもらったIPアドレスをパソコンに設定します。ルータが自動でやってくれることを手動でやるわけです。


2. ルータとパソコン間に問題はないか?Part 2

次に、ルータにパソコンからのリクエストが届くかを確かめてみましょう。コマンドラインで以下のコマンドを打ってください。
$ netstat -nr
すると、defaultと書かれた列があるのがわかります。ここに書かれているのが、ルータ自身のIPアドレスです。

このIPアドレスに対してリクエストを投げて、ちゃんと反応が帰ってくるか確かめてみましょう。以下のコマンドを打ちます。
$ ping <ルータのIPアドレス>
どうですか?上手く行けばレスポンスが帰ってきて行が増えていくはずです。確認できたらCtrl + Cで終了しましょう。

上手くいかないときは?
  • 「ルータに繋がりません!」とネットワーク管理者に相談してみましょう。何はともあれルータに問題がありそうです。

3. ウェブにリーチ出来るか?

それでは、社内・家庭内ネットワークから外界に出ることが出来るか確かめてみましょう。以下のコマンドを打ってください。
$ ping 8.8.8.8
8.8.8.8はかのGoogleDNSサーバを表しています。ここにリクエストを送ることで、Googleと自分のパソコンが交信できるかどうかを確かめます。

上手くいかないときは?
  • 「外に出られません!」とネットワーク管理者に相談しましょう。とにかくルータより外側を疑えばいいことがわかります。

4. 名前を解決できているか?

先程もちょっと触れたように、すべてのパソコンは自身にIPアドレスを持ってネットワークにつながっています。GoogleやYahooのサーバも例外ではありません。実は私たちのパソコンは、Yahooなどのサイトに接続するとき、www.yahoo.co.jpというホスト名をIPアドレスという数字の列に変換して通信を行っているのです。そしてこの変換(「名前解決」と呼びます)を担っているのが、DNSサーバなのです。それでは、この名前解決が正しく行われているのかを確かめましょう。たとえばYahoo!のサイトのIPアドレスを確かめるには、以下のコマンドを打ちます。
$nslookup www.yahoo.co.jp
すると、こんな感じになりました。

なるほど、つまりYahoo!IPアドレスは203.216.251.233だと。そこでアドレスバーにこのIPアドレスを入力してみると・・・

つながりました\(^^)/正しくYahoo!IPアドレスを解決することが出来ました。

上手くいかないときは・・・
  • 自分のパソコンにある名前解決のキャッシュが古い。間違っている。
    • 毎回毎回同じウェブサイトを訪問するたびにDNSサーバに問い合せて、「ああ、Yahoo!は203.216.251.233なのか!」なんてことをやっていると時間が勿体無いので、パソコンはこの名前解決をキャッシュ(一時保存)しています。パソコン内部でYahoo! = 203.216.251.233という対応関係を把握しているのです。
    • もしかしたらこの対応が古くなってしまったか、間違いがあるのかもしれません。名前解決のキャッシュを初期化しましょう。
  • そもそもDNSサーバの調子がおかしい
    • これは自分ではどうしようもない問題なので、管理者に聞いてみましょう。
  • ドメイン設定がうまく出来ていない。
    • 自分でドメインを設定したサイトの名前解決ができない場合は、ドメイン設定が正常に出来ているかを確かめてみましょう。

5. 相手のサーバが落ちていないか確かめる

最後に、相手のサーバがダウンしているか否かを確かめましょう。以下のコマンドを打ってください。
$ telnet www.yahoo.co.jp(または nslookupでとれたIPアドレス) 80
GET/HTTP/1.0
(2回Enter)
どうでしょう?Yahoo!のソースが帰ってきましたか?もしここでソースがとれたならば、繋ごうとしているサイトのサーバは正常に稼動しています。そのサイトは正常にブラウジングできます。おめでとうございます!

上手くいかないときは・・・
  • 自分のファイヤウォールの設定がおかしい。
    • セキュリティ関連で設定変更した点はありませんか?80番ポートが空いているか等、設定を見直しましょう。
  • 相手のサーバがダウンしている。
    • これに関しては復旧を待つしかありません。

お疲れさまでした

以上で全ステップ終了です。お疲れさまでした!
今回はパソコンからウェブまでの道のりを分解して、ひとつひとつチェックしてきました。
原因がどの段階に潜んでいるのかが分かるだけで、解決への効率が断然変わってきます。詳しいところは関連ワードを各自ググって対処してみてください。(飯塚 @tushuhei)