今回は、サーバ構築中などにネットワークがつながらない状況になった際に、よく使うコマンド(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の状態に設定しなおす必要があります。
コメント