よく使うネットワークトラブルシューティング(Windows)

Microsoftイメージ Network

今回は、サーバ構築中などにネットワークがつながらない状況になった際に、よく使うコマンド(Windows編)を紹介します。

ネットワークの基礎知識については、こちらの記事もご覧ください。

pingコマンド

Windowsの場合もネットワークの問題が発生した場合はとりあえずpingコマンドを打ってみるのが定石です。

C:\WINDOWS\system32>ping 8.8.8.8

8.8.8.8 に ping を送信しています 32 バイトのデータ:
8.8.8.8 からの応答: バイト数 =32 時間 =28ms TTL=56
8.8.8.8 からの応答: バイト数 =32 時間 =24ms TTL=56
8.8.8.8 からの応答: バイト数 =32 時間 =50ms TTL=56
8.8.8.8 からの応答: バイト数 =32 時間 =42ms TTL=56

8.8.8.8 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 24ms、最大 = 50ms、平均 = 36ms

C:\WINDOWS\system32>

とりあえずpingコマンドを打って、目的のサーバまで疎通できるかを確認します。

pingが通れば、サーバ間のNWが疎通している&対向のサーバが起動していることを確認できます。

もし通らなかった場合、他のコマンドを併用していくことで問題の発生原因を特定します。

arpコマンド

とりあえずpingコマンドでゲートウェイまでの疎通を確認しましょう。

ゲートウェイまでの疎通が確認できない場合は、arp -aでゲートウェイのMACアドレスが見えてるかを確認します。

C:\WINDOWS\system32>arp -a

インターフェイス: 192.168.XX.XX --- 0x7
  インターネット アドレス 物理アドレス           種類
  192.168.XXX.XX        XX-XX-XX-XX-XX-XX     動的
  192.168.XXX.XX       XX-XX-XX-XX-XX-XX     動的
  192.168.XXX.XX       ff-ff-ff-ff-ff-ff     静的
  255.255.255.255       ff-ff-ff-ff-ff-ff     静的

上記コマンドは実行例(一部抜粋してマスキングしています)ですが、この時ゲートウェイのIPアドレスとMACアドレスがセットで表示されるかを確認します。

ゲートウェイでICMPを拒否している場合もあります。(ICMP = ping)その場合は、MACアドレスも表示されないので、後で記述するftpコマンドやTest-NetConnectionなどを用いた方法でポートを指定して確認する必要があります。

tracertコマンド

NICを複数持っている場合で、サーバ側にルーティング設定を行っている場合、正しいNICから通信を行おうとしていない場合があります。

正しいNICで通信しようとしているかを確認するためにtracertコマンドを用います。

Windowsの場合はtracertコマンドですので間違えないようにしてください。

C:\WINDOWS\system32>tracert 8.8.8.8

dns.google [8.8.8.8] へのルートをトレースしています
経由するホップ数は最大 30 です:

  1    <1 ms    <1 ms    <1 ms  192.168.XX.XX
  2    37 ms    30 ms    39 ms  XXX.XXX.XXX.XXX
  3    33 ms    40 ms    46 ms  XXX.XXX.XXX.XXX
  4    17 ms    11 ms     6 ms  XXX.XXX.XXX.XXX

ftpコマンド

pingコマンドでの疎通後もしくは疎通できない場合に併用して、ftpコマンドなどでポートが開いているかどうか確認します。

ftpコマンドは本来ftp通信を行うためのものですが、簡単なポート疎通確認コマンドとしてよく使用します。

C:\WINDOWS\system32>ftp
ftp> open 8.8.8.8 443
8.8.8.8 に接続しました。
アクティブなすべてのデータ接続を中止しています...
接続がリモート ホストによって閉じられました。
ftp> bye

C:\WINDOWS\system32>

上記例では8.8.8.8のサーバのTCPポート443と疎通できるかどうかを確認しています。

ftpコマンドモードでopen 8.8.8.8 443と打ったあとに、8.8.8.8に接続しました。と出れば、8.8.8.8の443ポートへの疎通が確認できたことになります。

疎通できない場合はXXX.XXX.XXX.XXXに接続しました などは表示されずに、しばらく待たされ、

ftp: connect :接続がタイムアウトしました

と表示されます。

ftpのコマンドモードを解除するにはbyeと入力します。

Test-NetConnectionコマンドレット

WindowsではPowerShellのコマンドレットで、ポートを確認するコマンドレットが標準で用意されています。

PS C:\Windows\system32> Test-NetConnection 8.8.8.8 -Port 443


ComputerName     : 8.8.8.8
RemoteAddress    : 8.8.8.8
RemotePort       : 443
InterfaceAlias   : イーサネット
SourceAddress    : 192.168.XXX.XXX
TcpTestSucceeded : True

TcpTestSucceededがTrueとなっていれば疎通可能ということです。

netstatコマンド

netstatコマンドはWindowsでも利用できます。

対向側の状態が見れるのであれば、netstatコマンドで、通信ポートが想定している番号で正しく待ち受け状態になっているか確認しましょう。

C:\WINDOWS\system32>netstat -ano

アクティブな接続

  プロトコル  ローカル アドレス      外部アドレス           状態            PID
  TCP         0.0.0.0:3389           0.0.0.0:0              LISTENING       1328

例えばリモートデスクトップ接続させたいのに、3389で待ち受け状態になっていない場合、RDPの設定やWindows Firewallの設定を見直して、正しくLISTENの状態に設定しなおす必要があります。

Windows Serverの勉強におすすめの本

Windows Serverの勉強には、MCPの資格本を使うのがおすすめです。
ハンズオン形式での手順なども記載されているので、実機を触りながら勉強することができます。

この記事を書いた人

渋谷で働くよわよわエンジニア。TypeScript(Next.js/Node.js)/Golang/AWS/Flutterなど
LINE API Expert(2023/1~)

tokkuをフォローする
オススメ記事
在宅ワークが多くなって、デスクの配線周りに困っている方は、拡張デスクの導入がおすすめです。Windows/MacOS/Linuxの複数の機器をスッキリとデスク周りに収める事ができました!リモートからサーバーメンテを行うインフラエンジニアは必見です!
NetworkWindows
tokkuをフォローする

コメント

タイトルとURLをコピーしました