Windows10: 目的のホストにネットワーク接続できない

パソコンやモバイル端末を使って通信をしていると、目的のホストとつながらないことは多々あります。
使っているマシンが、自分のPCなら、そしてUnix系のOSなら、netstat の他、オプションの iftop などを使ってネットワークの状態を監視し続けることが出来ますので、応答しないホストが何でポートが何番であるかは簡単に見つけることが出来ます。

普段は困ることはないのですが、自分のPCではなくて、オプションのネットワークユーティリティも入っておらず入れることも出来ない他人のPCで通信障害が発生すると、本当に困ります。Windows10ならWSLが入っている可能性もありますが、本当に何にも入っていない!

こういう状況で通信エラーが出て、どのホストとの通信にエラーが出ているのかわからないと来た!

Windowsの標準コマンドだけでデバッグするとなると、netstat で SYN_SENTが出っぱなしになっているセッションを見つけるしかないのですが、netstat コマンドはコマンドを発行した時点のネットワークセッションを表示するものなので、問題があるセッションを見つけるのはタイミングが肝心。

Windows10のnetstat コマンドは、「netstat」「netstat -n」くらいしか使ったことがなく、今回のトラブルは困りました。しかしヘルプを見てみると、「intervalオプション」があるのを発見。
(-n オプションはスピードアップのために付けます。-n を付けないと、逐次 IPアドレス→ホスト名 の名前解決をしてしまうので、コマンドの表示が遅い!)

cmd.exe を開いて、以下のように「netstat -n 1」とすると、1秒ごとに netstat -n を実行してくれます。

>netstat -n 1

アクティブな接続

  プロトコル  ローカル アドレス      外部アドレス           状態
  TCP         192.168.1.61:52901     52.230.85.180:443      ESTABLISHED
  TCP         192.168.1.61:52922     52.175.28.154:443      ESTABLISHED
  TCP         192.168.1.61:53845     52.230.84.0:443        ESTABLISHED
  TCP         192.168.1.61:53867     52.229.172.155:443     ESTABLISHED

アクティブな接続

  プロトコル  ローカル アドレス      外部アドレス           状態
  TCP         192.168.1.61:52901     52.230.85.180:443      ESTABLISHED
  TCP         192.168.1.61:52922     52.175.28.154:443      ESTABLISHED
  TCP         192.168.1.61:53845     52.230.84.0:443        ESTABLISHED
  TCP         192.168.1.61:53867     52.229.172.155:443     ESTABLISHED

アクティブな接続

  プロトコル  ローカル アドレス      外部アドレス           状態
  TCP         192.168.1.61:52901     52.230.85.180:443      ESTABLISHED
  TCP         192.168.1.61:52922     52.175.28.154:443      ESTABLISHED
  TCP         192.168.1.61:53845     52.230.84.0:443        ESTABLISHED
  TCP         192.168.1.61:53867     52.229.172.155:443     ESTABLISHED
^C

コマンド操作と同時に画面をにらみ続けるのも大変なので、

netstat -n 1 > output.txt

でファイルに連続して書き込み、エラーが発生した状況を捉えたと感じたあとで、Ctrl-Cを入力してコマンドを停止。その後、メモ帳でoutput.txt を開いて怪しいセッションを見つけるという手順を何回か繰り返すと、今回は、何とか問題の原因を突き止めることが出来ました。

コメントを残す