[メモ]ネットワーク接続トラブル時の問題切り分け方法
1. pingで接続できるか
$ ping IPアドレス
$ ping ホスト名
pingが成功しない場合
1.同一ネットワーク上の他のマシンに接続できるか確認
$ ping 目的のマシンと同一ネットワークに存在する他のマシンのIPアドレス
2.ネットワーク経路のどこで失敗しているか確認
※tracerouteのデフォルトはUDP接続なので、-IでICMP、-TでTCPもできる
$ traceroute IPアドレス
2.ポートが開いているか
目的のマシン内で
$ netstat -a
# ss -a
もしくは、
クライアントから
$ nc ホスト名 -z ポート番号
Connection to qiita.com port 443 [tcp/https] succeeded!
3.名前解決が適切に行われているか
hostsファイルを確認
$ cat /etc/hosts
もしくは、
$ nslookup ドメイン名
Server: 192.168.100.1・・DNSサーバー名
Address: 192.168.100.1#53・・DNSサーバーのアドレス
Non-authoritative answer:
Name: qiita.com・・問い合わせたドメイン名
Address: 54.65.107.105・・結果
Name: qiita.com
Address: 13.112.43.51
Name: qiita.com
Address: 54.238.18.49
$ dig ドメイン名
(結果エリア)
;; ANSWER SECTION:
qiita.com. 22 IN A 54.65.107.105
qiita.com. 22 IN A 54.238.18.49
qiita.com. 22 IN A 13.112.43.51
その他
・怪しいコネクションを特定して、どのプロセスが使っているか確認する
// tcpコネクションを表示
$ netstat -p tcp
// どのプロセスが使っているか特定
$ lsof -i:58193
・ネットワーク性能が悪い場合は以下を疑う
(「絵で見て分かるOS/ストレージ/ネットワーク[新装版]」P263〜)
1.ボトルネックによる待ち行列
- DBサーバー、APサーバーなどで待ち行列が発生してないか確認する
2.通信回数が多い
- 帯域を使い切ってなくてもショートパケットが何回も送られることで処理に時間がかかっていることがある
- DBの場合データを全て受け取ってからプログラムで処理するのではなくストアドプロシージャでDB側で処理してしまう、などもできる
- Webサイトの場合閾値を超えたらソーリーページを表示する、などで待ち行列を制限する、などもできる
3.相手の応答を待たなければならない
4.純粋なネットワークのトラブル
参考
・絵で見て分かるOS/ストレージ/ネットワーク[新装版]
・Macでネットの通信が遅い時にnetstatとlsofコマンド使って調べてみた
Author And Source
この問題について([メモ]ネットワーク接続トラブル時の問題切り分け方法), 我々は、より多くの情報をここで見つけました https://qiita.com/Yorinton/items/621dd1efaf3e8ee34aa4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .