概要
本記事では、Windows Server環境における通信トラブルの原因特定に役立つ標準コマンドおよびPowerShellツールを体系的に紹介します。ICMP疎通確認からTCPポート調査、DNS解決、ログ収集を解説します。
変数表記について
本記事では環境依存の値を以下のように表記します。実際の環境に合わせて読み替えてください。
| 変数名 | 設定例 | 備考 |
|---|---|---|
<<TARGET_HOST>> |
192.168.10.1 |
疎通確認先ホスト名またはIPアドレス |
<<PORT_NUMBER>> |
443 |
アプリケーションが使用するTCPポート番号 |
<<LOG_PATH>> |
C:\Logs\netdiag.txt |
出力ログの保存先 |
Step 1: ICMP疎通確認(ping)
ネットワーク層での到達性を確認します。
ping <<TARGET_HOST>>
応答がない場合は以下を確認します。
- Windows Defender FirewallでICMPがブロックされていないか
- 対象ホストが稼働中か
route printで経路設定に誤りがないか
補足: ICMP応答を無効化している環境ではTCP疎通確認を行う必要があります。
Step 2: 経路の確認(tracert)
経路上のどのホップで通信が途絶しているかを確認します。
tracert <<TARGET_HOST>>
Step 3: TCPポート疎通確認(Test-NetConnection)
アプリケーション層の通信が確立できるかを検証します。
Test-NetConnection -ComputerName <<TARGET_HOST>> -Port <<PORT_NUMBER>>
主な出力項目:
| 項目 | 説明 |
|---|---|
TcpTestSucceeded |
TCP接続が成功したか |
PingSucceeded |
ICMP応答の有無 |
RemoteAddress |
解決された宛先IPアドレス |
SourceAddress |
実際に使用された送信元IPアドレス |
ポイント: DNSが不安定な場合はIPを直接指定して疎通を確認します。
Step 4: TCPセッション状態の確認(netstat / Get-NetTCPConnection)
現在のTCP接続やリスンポートを確認します。
netstatによる確認
netstat -ano | findstr "<<PORT_NUMBER>>"
オプション解説:
-a: すべての接続と待機ポートを表示-n: アドレス・ポートを数値で表示-o: プロセスIDを表示
対応プロセスの特定:
tasklist /FI "PID eq <<PID_NUMBER>>"
PowerShellによる確認
Get-NetTCPConnection -State Established |
Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State, OwningProcess
Get-NetTCPConnection | Where-Object { $_.LocalPort -eq <<PORT_NUMBER>> }
SYN_SENTやTIME_WAIT状態が多い場合は、接続が中断または過剰に確立・切断されている可能性があります。
Step 5: DNS解決の確認(nslookup / Resolve-DnsName)
名前解決が正しく行われているかを確認します。
nslookup <<TARGET_HOST>>
PowerShellを用いた詳細確認:
Resolve-DnsName <<TARGET_HOST>> -Type A
DNSサーバーを指定して問い合わせる場合:
Resolve-DnsName <<TARGET_HOST>> -Type A -Server 8.8.8.8
補足: IPv6環境では
-Type AAAAを指定して確認します。
Step 6: 高度なトラブルシューティング
Firewallログの有効化
通信が遮断されている場合、ファイアウォールログを有効にして確認します。
Set-NetFirewallProfile -Profile Domain,Public,Private `
-LogAllowed True -LogBlocked True `
-LogFileName "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" `
-LogMaxSizeKilobytes 32767
既定の最大サイズは1MBのため、上記のように拡張しておくと解析が容易になります。
ARPテーブルの確認(L2トラブルの検出)
arp -a
MACアドレスの不整合や重複が見られる場合、スイッチ・仮想NICのキャッシュを疑います。
まとめ
ネットワーク障害の多くは、
ICMP疎通 → 経路確認 → TCP接続 → DNS解決 → ログ解析
の5段階で体系的に切り分けが可能です。
Windows標準ツールであるping、tracert、netstat、およびPowerShellのGet-NetTCPConnection、Resolve-DnsName、Test-NetConnectionを組み合わせることで、効率的かつ再現性の高いトラブルシューティングを実現できます。
