#まだ草案(失望
後輩とかに軽くこれくらいは知っておいてほしい的なものをここに溜め込んでおこうと思う。あとコメントとかもらっていろいろブラッシュアップできてもいいんじゃないかな(他人事)
##モチベーション
ネットワークトラブルが起きた時の簡易ティップス。主に自分と初心者(1年生レベル)向け。初心者向けなので「なぜ?」をくどく書いているよ。急いでいるときは下の具体例までスキップしよう。暇な人は全部読むといいんじゃないかな。
キーワード: ネットワーク, トラブル, ping, ifconfig, ipconfig, ip a
##トラブルが起きたときは原因を切り分けよう
トラブルに関しては大まかに2種類に分けて考えよう。正常に動いていたものが動かなくなったケースと初めて実装したものが動かないケース。
###正常に動いていたものが動かなくなった
まず最初に、動いていた時と動かなくなった今の間に何があったか思い出すor調べよう。だいたいその変わった部分が悪さをしてる。元に戻すのが吉。さて、ここから本番。今回ネットワークトラブルに焦点を当てるよ。ここで用いる例は"オンラインサービスがつながらなくなった"。正常に動いていたのに...というケースは、個人的にはトップダウンで調べると割と良い感じ。以下はコマンドプロンプト(Windows)やターミナル(Mac/Linux/Unix)で入力。
pingコマンド
ping -c 3 www.google.com
コマンドの詳しい説明は無しで、これはgoogleに「つながってますかー!」と問いかけをしている。これでgoogleから返答が帰ってきたらとりあえずインターネットとは通信が出来ている。なのに特定のオンラインサービスが使えないなら、自分とそのサービスの間だけの問題と原因を切り分けることができる。
※pingを実行して0% packet lossみたいな事が言われてたら大丈夫。100%ロスしてたら何かおかしい。
※ping -c 3 64.233.167.99
これもgoogleに問い合わせてるのだけど、64.233.167.99とgoogle.comではちょっと内部でやってることが違う。ここでは詳しく解説しないがDNSが調子悪いと前者では通信が通るが、後者では通信が通らないという事が起こる。これでDNSが調子悪いときは特定できますね!
ifconfig / ipconfigコマンド
ipconfig
//Windowsの場合
ifconfig
//Mac,Linuxの場合
ip a
//いくつかのLinuxの場合
これは自分に今割り当てられているIPアドレスとかネットワークのざっくりした設定とかを見るコマンド。ここでipアドレス(inetとか書いてあるところ)に何も設定されていなかったら、そもそもネットワークに繋がる準備が出来ていない。インターネットそのものが落ちることは確率的にあまりに小さいので、十中八九で自分たちのLAN内の問題である可能性が高い。LANケーブルとかルータがちゃんと動いてるか確認してみるべし。
###初めて実装したものが動かない
この場合はボトムアップで原因を特定していくのが良いと思われる。小さな部分からちゃんと動くことを確認しながら、どこで正常に動かないかを見つけるのが良い。ここでは"自分の作ったwebサイトが見れない"と言う例で考えていくよ。
そのファイル、開けますか?
もちろん作ったファイルは正常に開けるよね?開けなかったらファイルに問題アリだな!
そのサービス、動いてますか?
出来ればサーバ自身のブラウザで127.0.0.1
或はlocalhost
にアクセスしてみてほしい。アクセスできません的なエラーが帰ってきたらそれ多分サービスが起動してないよ。
そのサーバ、繋がってますか?
適切にネットワーク設定がされていたらipアドレスがあるはず。前述のping, ipconfig/ifconfig/ip aコマンドを使ってネットが使える状態になっているかを確認すべし。
そのサーバ、アクセスできますか?(LAN内)
別の端末からブラウザでサーバのipアドレスにアクセスしてみる。うまく見れない?じゃあサーバのサービスとクライアント間に問題がありそう。ファイルやフォルダ/ディレクトリのアクセス権限とか、ファイアウォールで外からのアクセスを弾いていないか要チェックや!
そのサーバ、外からアクセスできますか?(Internet越し)
cman様あたりにご助力頂いて、自分のグローバルIPアドレスのサービスにアクセスできるかチェックしてみよう。繋がらない?十中八九ルータのポート解放だよ!!逆説的にLAN内のアクセスは許すのに外部ネットワーク(インターネット)からのアクセスを弾くなら、ルータのファイアウォールかサーバで任意のIPからしかアクセスを受け付けないという設定くらいしかないよ!!
##最後の一言
大概のトラブルの原因(98%くらい)はくだらない事が原因です。入力のタイプミス、SELinux切ってなかった(爆)、アクセス権限の設定間違ってる、LANケーブルが外れてた/挿すポート間違ってる、サーバの電源つけてなかった、自動再起動だと思ってたら手動でしないといけなかった…etc。いや、本当にこんなんばかりなんですって。上手に切り分けて早く解決しましょう。
まだまだいっぱい書かないといけないことあるね。