fluid_27’s blog

勉強した内容をアウトプットするためのブログ

ウェブサイトに接続できない時に試すこと

AWSのEC2インスタンス 立てたサーバーにアクセスできなくて、様々な本やサイトで読んでエラーが起きている問題の切り分け方法をザックリまとめてみました。

まだネットワークの知識が浅いので、随時更新していこうと思います。

 

 

 1. クライアント側のネットワーク環境に問題ないか確認する

(指定のサイト以外は閲覧できるか。など)

 

 2. ホスト名が解決できるか確認

nslookupコマンドやdigコマンドを利用

DNS解決できなければ、DNS設定もしくはDNSサーバ自体に問題がある可能性。

 

nsloogupの使い方:

nslookupは、DNSサーバーに問い合わせができるコマンド。

$ nslookup で対話モードに。

対話モードに入ったら、

ドメイン名を入れたらIPアドレスが。

IPアドレスを入れたらドメイン名が表示される。

対話モードで「?」を入力すると全オプションを見れる。

 

$ nslookup

>yahoo.co.jp

  ipアドレスが表示される。

>183.79.135.206

   ドメイン名のyahoo.co.jpが表示される。

>?

   全オプションを表示

 

 

 3. pingコマンドでネトワークの疎通を調査する

pingコマンドが通らなかった場合、途中のネットワークに問題があるかwebサーバがダウンしている可能性が。ただし、ICMPが許可されてないとpingコマンドは使えない。

 

pingの使い方:

$ ping ドメイン名またはIPアドレス

Ctrl + cで停止する。

 

 4. telnetコマンドでポート80番に接続する

telnetコマンドでHTTPのウェルノウンポート番号の80番に接続。

→応答がなければポート80番がセキュリティの設定などによって閉じられている。もしくはApacheなどのHTTPサーバーのプロセスが起動していない、という事が考えられる。

 

telnetの使い方:

$ telnet IPアドレス [ポート番号]

 

 

 5. 上記の全てを確認して、それでもwebサイトに接続できない時は、アプリケーション内部の問題だと考えられる。

 

 

<追記>

curlコマンド

様々なプロトコルを使用してデータ転送を行うことができるコマンド。

 

HTTPのGETやPOST、HTTOSやFTPTelnetSMTPIMAPPOP3など様々な通信プロトコルをサポートしている。

 

最近の端末には最初から入っていて、ターミナルですぐにcurlコマンドを使用できる状態だが、入っていない場合はインストールする必要がある。

 

$ curl --version

でちゃんとバージョン確認できれば入っている。

 

curlコマンドの使い方:

$ curl (ドメイン名 or IPアドレス)

でそのURLの情報を取得できる。

 

ポート番号指定

$ curl (ドメイン名 or IPアドレス):ポート番号

 

オプション:メソッド変更

$ curl -X (リクエストメソッド) (ドメイン名 or IPアドレス)

例) $ curl -X GET https://www.yahoo.co.jp/

 

curl についての参考サイト

https://qiita.com/akane_kato/items/34b408336f4ec372b139

 

 

netstat

主にTCPの通信状態を調査するコマンド。

通信の状態や通信相手、通信しているプロセス、通信量などの情報を知ることができる。

 

netstatの使い方: 

$ netstat

現在アクティブなTCPコネクションの状態が表示される

 

状態

Listening 待受状態。

Established TCPコネクションが確立して通信している状態。

 

オプション

-a 全ての接続を表示

-n ホスト名/IPアドレス等を解決せずに数字で表示

-r ルーティングテーブルを表示

-t tcpに限定する

-u udpに限定する

-i ネットワークインターフェースの情報を表示

-p PIDと各ソケットが属するプログラム名を表示

-l listenしてるもののみ表示

 

 

netstat に関する参考サイト

https://www.atmarkit.co.jp/ait/articles/0207/20/news003.html

https://made.livesense.co.jp/entry/2016/05/10/083000