WindowsServer 2025 総合ガイド 第06回
ネットワーク設定の基礎 ― IPアドレスとDNSを理解する
第5回では、Windows Serverの心臓部ともいえる「サービス」について学びました。サービスの状態確認、起動・停止、スタートアップの種類の変更など、サーバー管理の基本スキルを習得しました。第6回となる今回は、サーバーが外部と通信するための基盤である「ネットワーク設定」を学びます。IPアドレス、サブネットマスク、DNS(Domain Name System)の概念を理解し、PowerShellで設定の確認・変更・トラブルシューティングを行えるようになりましょう。
6.1 この記事で学ぶこと
- TCP/IPの基本概念(IPアドレス、サブネットマスク、デフォルトゲートウェイ)を理解する
- ネットワークアダプターとIPアドレスの設定をPowerShellで確認・変更できる
- DNSの設定と名前解決の確認ができる
- 接続テストによる疎通確認とトラブルシューティングの基礎を身につける
6.2 前提条件
- 第5回完了(Windowsサービスの管理を理解)
- Windows Server 2025にリモートデスクトップ接続できる状態
- PowerShell 7.4を管理者として起動できる状態
6.3 TCP/IPの基礎知識
ネットワーク設定を行う前に、通信の基盤となるTCP/IP(Transmission Control Protocol / Internet Protocol)の基本概念を理解しておきましょう。TCP/IPは、コンピュータ同士がネットワーク上で通信するためのルール(プロトコル)の集まりです。
6.3.1 IPアドレスとは
IPアドレスは、ネットワーク上のコンピュータを識別するための「住所」のようなものです。電話番号がなければ電話をかけられないのと同じように、IPアドレスがなければサーバー同士は通信できません。
IPv4アドレスの構造
現在最も広く使われているのはIPv4(Internet Protocol version 4)アドレスです。IPv4アドレスは32ビット(4バイト)の数値で、人間が読みやすいように8ビット(1バイト)ずつドットで区切って10進数で表記します。この8ビットの各区切りを「オクテット」と呼びます。
例:192.168.1.100
192 . 168 . 1 . 100
[第1オクテット].[第2オクテット].[第3オクテット].[第4オクテット]
各オクテットの範囲:0〜255(8ビットで表現できる範囲)
プライベートアドレスとパブリックアドレス
IPアドレスには「プライベートアドレス」と「パブリックアドレス」の2種類があります。プライベートアドレスは組織内のネットワーク(LAN)で自由に使えるアドレスで、インターネット上では使用できません。一方、パブリックアドレスはインターネット上で一意に割り当てられるアドレスです。
| 種類 | アドレス範囲 | CIDR表記 | 用途 |
|---|---|---|---|
| クラスA プライベート | 10.0.0.0 〜 10.255.255.255 | 10.0.0.0/8 | 大規模な組織内ネットワーク |
| クラスB プライベート | 172.16.0.0 〜 172.31.255.255 | 172.16.0.0/12 | 中規模な組織内ネットワーク |
| クラスC プライベート | 192.168.0.0 〜 192.168.255.255 | 192.168.0.0/16 | 小規模な組織内ネットワーク・家庭 |
| パブリックアドレス | 上記以外 | ― | インターネット上の通信 |
ConoHa VPS環境での注意: ConoHa for Windows Serverでは、サーバーにパブリックIPアドレスが直接割り当てられています。自宅のルーター配下の環境(192.168.x.x など)とは異なり、インターネットから直接アクセス可能な状態です。そのため、セキュリティ設定(ファイアウォールなど)がより重要になります。
特殊なIPアドレス
いくつかのIPアドレスは特別な意味を持っています。
| アドレス | 名称 | 用途 |
|---|---|---|
| 127.0.0.1 | ループバックアドレス | 自分自身を指す。ネットワークに出ずに自分のコンピュータ内で通信をテストする際に使用 |
| 0.0.0.0 | すべてのアドレス | サーバーが「すべてのネットワークインターフェースでリッスンする」ことを示す場合などに使用 |
| 255.255.255.255 | ブロードキャストアドレス | 同一ネットワーク内のすべてのホストに一斉送信する際に使用 |
6.3.2 サブネットマスクの役割
サブネットマスクは、IPアドレスのうち「どこまでがネットワークの識別部分で、どこからがホスト(個々のコンピュータ)の識別部分か」を決める値です。
ネットワーク部とホスト部
IPアドレスは「ネットワーク部」と「ホスト部」の2つの部分に分かれています。たとえば、住所で例えると「東京都千代田区」がネットワーク部(地域の識別)、「丸の内1-1」がホスト部(その地域内の特定の場所)に相当します。
IPアドレス: 192.168.1.100
サブネットマスク:255.255.255.0
ネットワーク部:192.168.1 (同じネットワークに属する機器は全て同じ)
ホスト部: 100 (同じネットワーク内で機器ごとに異なる)
サブネットマスクが「255」の部分がネットワーク部、「0」の部分がホスト部です。同じネットワーク部を持つコンピュータ同士は、ルーター(後述するゲートウェイ)を介さずに直接通信できます。
CIDR表記
サブネットマスクは「255.255.255.0」のように書く代わりに、「/24」のようにネットワーク部のビット数で表記することもあります。これをCIDR(Classless Inter-Domain Routing、サイダー)表記と呼びます。
| サブネットマスク | CIDR表記 | ネットワーク部のビット数 | 利用可能なホスト数 |
|---|---|---|---|
| 255.0.0.0 | /8 | 8ビット | 約1677万台 |
| 255.255.0.0 | /16 | 16ビット | 約6万5千台 |
| 255.255.255.0 | /24 | 24ビット | 254台 |
| 255.255.255.128 | /25 | 25ビット | 126台 |
| 255.255.255.192 | /26 | 26ビット | 62台 |
| 255.255.255.224 | /27 | 27ビット | 30台 |
| 255.255.255.240 | /28 | 28ビット | 14台 |
| 255.255.255.252 | /30 | 30ビット | 2台 |
補足: 「利用可能なホスト数」が2のホスト部ビット数乗より2つ少ないのは、ネットワークアドレス(ホスト部がすべて0)とブロードキャストアドレス(ホスト部がすべて1)の2つが予約されているためです。たとえば /24 では 2^8 – 2 = 254台となります。
6.3.3 デフォルトゲートウェイ
デフォルトゲートウェイは、異なるネットワークへ通信する際の「出口」となる機器(通常はルーター)のIPアドレスです。
同じネットワーク部を持つコンピュータ同士は直接通信できますが、異なるネットワーク(たとえばインターネット上のサーバー)と通信するには、デフォルトゲートウェイを経由する必要があります。たとえるなら、同じ建物内の人には直接話しかけられますが、別の建物の人と話すには受付(ゲートウェイ)を通す必要があるようなものです。
自分のサーバー:192.168.1.100 / 255.255.255.0
ゲートウェイ: 192.168.1.1
通信先が 192.168.1.x → 直接通信(同じネットワーク)
通信先が 10.0.0.x → ゲートウェイ(192.168.1.1)経由で転送
通信先が 8.8.8.8 → ゲートウェイ(192.168.1.1)経由で転送
6.3.4 IPv6について
IPv4アドレスは32ビットのため約43億個しか割り当てられず、インターネットの普及に伴い枯渇が進んでいます。その後継として開発されたのがIPv6(Internet Protocol version 6)です。IPv6は128ビットのアドレス空間を持ち、事実上無限に近い数のアドレスを使用できます。
IPv4の例:192.168.1.100
IPv6の例:fe80::d4a8:6435:d2d8:d9f3
Windows Server 2025ではIPv6がデフォルトで有効になっています。本シリーズではIPv4を中心に解説しますが、コマンド実行時にIPv6のアドレスが表示されることがありますので、驚かないでください。IPv6の詳細な設定については、IPv4の基礎を十分に理解してから学ぶことをお勧めします。
6.4 ネットワークアダプターの確認
ネットワーク設定を確認する最初のステップは、サーバーに搭載されているネットワークアダプター(NIC:Network Interface Card)の状態を確認することです。ネットワークアダプターは、サーバーをネットワークに物理的(または仮想的に)接続するためのハードウェアです。
6.4.1 Get-NetAdapterコマンドレット
Get-NetAdapterコマンドレットを使うと、サーバーに搭載されているすべてのネットワークアダプターの情報を取得できます。
[実行環境: PowerShell 7.4 (管理者)]
# ネットワークアダプターの一覧を取得
Get-NetAdapter
実行結果の例
Name InterfaceIndex ifIndex Status MacAddress LinkSpeed
---- -------------- ------- ------ ---------- ---------
Ethernet0 6 6 Up 00-50-56-A1-2B-3C 10 Gbps
Loopback Pseudo-Interface 1 1 1 Up 00-00-00-00-00-00-00 1.2 Gbps
各列の意味は以下のとおりです。
| プロパティ | 説明 |
|---|---|
| Name | アダプターの名前。設定変更時にこの名前で指定する |
| InterfaceIndex | アダプターを一意に識別する番号 |
| Status | Up(接続中)またはDown(切断)。Upでなければ通信できない |
| MacAddress | 物理アドレス。ネットワークアダプター固有の識別子(MACアドレス) |
| LinkSpeed | リンク速度。ネットワークの物理的な接続速度 |
特定のプロパティだけを確認したい場合は、Select-Objectで絞り込むことができます。
[実行環境: PowerShell 7.4 (管理者)]
# 主要な情報だけを表示
Get-NetAdapter | Select-Object -Property Name, Status, MacAddress, LinkSpeed, InterfaceDescription
6.4.2 Get-NetAdapterAdvancedPropertyコマンドレット
ネットワークアダプターの詳細なプロパティ(速度設定、VLAN設定など)を確認するには、Get-NetAdapterAdvancedPropertyを使用します。通常の運用ではあまり変更する必要はありませんが、トラブルシューティング時に役立つことがあります。
[実行環境: PowerShell 7.4 (管理者)]
# Ethernet0アダプターの詳細プロパティを確認
Get-NetAdapterAdvancedProperty -Name "Ethernet0"
実行結果の例
Name DisplayName DisplayValue RegistryKeyword RegistryValue
---- ----------- ------------ --------------- -------------
Ethernet0 IPv4 Checksum Offload Rx & Tx Enabled *IPChecksumOff… {3}
Ethernet0 Large Send Offload V2 (IPv4) Enabled *LsoV2IPv4 {1}
Ethernet0 Large Send Offload V2 (IPv6) Enabled *LsoV2IPv6 {1}
...
Tips:
Get-NetAdapterやGet-NetAdapterAdvancedPropertyの詳細なパラメータを調べるには、Get-Help Get-NetAdapter -Detailedを実行するか、Microsoft Docsを参照してください。
6.5 IPアドレス設定の確認
ネットワークアダプターの状態を確認したら、次はIPアドレスの設定を確認しましょう。PowerShellにはIPアドレス設定を確認するためのコマンドレットが複数用意されています。
6.5.1 Get-NetIPConfigurationコマンドレット
Get-NetIPConfigurationは、ネットワーク設定の概要を一覧表示するコマンドレットです。IPアドレス、デフォルトゲートウェイ、DNSサーバーなど、主要な設定を一目で確認できるため、最もよく使うコマンドレットのひとつです。
[実行環境: PowerShell 7.4 (管理者)]
# ネットワーク設定の概要を表示
Get-NetIPConfiguration
実行結果の例
InterfaceAlias : Ethernet0
InterfaceIndex : 6
InterfaceDescription : VMware VMXNET3 Ethernet Adapter
NetProfile.Name : ネットワーク
IPv4Address : 198.51.100.10
IPv6DefaultGateway :
IPv4DefaultGateway : 198.51.100.1
DNSServer : 8.8.8.8
8.8.4.4
この出力から、以下の情報がわかります。
- InterfaceAlias:ネットワークアダプターの名前(Ethernet0)
- IPv4Address:このサーバーに割り当てられているIPv4アドレス
- IPv4DefaultGateway:デフォルトゲートウェイのIPアドレス
- DNSServer:DNSサーバーのIPアドレス(詳細は後述)
より詳細な情報を確認するには、-Detailedパラメータを追加します。
[実行環境: PowerShell 7.4 (管理者)]
# 詳細なネットワーク設定を表示
Get-NetIPConfiguration -Detailed
6.5.2 Get-NetIPAddressコマンドレット
Get-NetIPAddressは、サーバーに設定されているすべてのIPアドレスの詳細情報を取得するコマンドレットです。IPv4とIPv6の両方が表示されます。
[実行環境: PowerShell 7.4 (管理者)]
# すべてのIPアドレスを表示
Get-NetIPAddress
IPv4アドレスだけに絞り込むには、-AddressFamilyパラメータを使用します。
[実行環境: PowerShell 7.4 (管理者)]
# IPv4アドレスのみ表示
Get-NetIPAddress -AddressFamily IPv4
実行結果の例
IPAddress : 198.51.100.10
InterfaceIndex : 6
InterfaceAlias : Ethernet0
AddressFamily : IPv4
Type : Unicast
PrefixLength : 23
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Preferred
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : False
PolicyStore : ActiveStore
IPAddress : 127.0.0.1
InterfaceIndex : 1
InterfaceAlias : Loopback Pseudo-Interface 1
AddressFamily : IPv4
Type : Unicast
PrefixLength : 8
PrefixOrigin : WellKnown
SuffixOrigin : WellKnown
AddressState : Preferred
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : False
PolicyStore : ActiveStore
ここで確認すべき主なプロパティは以下のとおりです。
| プロパティ | 説明 |
|---|---|
| IPAddress | 割り当てられているIPアドレス |
| PrefixLength | サブネットマスクのCIDR表記(例:23 は /23 = 255.255.254.0) |
| PrefixOrigin | アドレスの取得方法。Manual(手動設定)、Dhcp(DHCP取得)、WellKnown(予約済み)など |
| AddressState | アドレスの状態。Preferred(有効)が正常 |
6.5.3 Get-NetRouteコマンドレット
Get-NetRouteは、ルーティングテーブル(通信先ごとにどのゲートウェイを経由するかの一覧表)を表示するコマンドレットです。デフォルトゲートウェイの設定が正しいかどうかを確認する際に使用します。
[実行環境: PowerShell 7.4 (管理者)]
# IPv4のルーティングテーブルを表示
Get-NetRoute -AddressFamily IPv4 |
Select-Object -Property DestinationPrefix, NextHop, RouteMetric, InterfaceAlias
実行結果の例
DestinationPrefix NextHop RouteMetric InterfaceAlias
----------------- ------- ----------- --------------
255.255.255.255/32 0.0.0.0 256 Ethernet0
198.51.100.0/23 0.0.0.0 256 Ethernet0
198.51.100.10/32 0.0.0.0 256 Ethernet0
127.0.0.1/32 0.0.0.0 256 Loopback Pseudo-Interface 1
127.0.0.0/8 0.0.0.0 256 Loopback Pseudo-Interface 1
0.0.0.0/0 198.51.100.1 16 Ethernet0
最も重要な行は0.0.0.0/0(デフォルトルート)です。これは「特定のルートが定義されていない通信先すべて」に対するルートで、NextHopに表示されているアドレスがデフォルトゲートウェイです。
6.6 IPアドレスの設定
IPアドレスの設定状況を確認する方法がわかったところで、次はIPアドレスの設定を変更する方法を学びます。
⚠️ 重要な警告(VPS環境をお使いの方へ): ConoHa VPSなどのリモート環境でIPアドレスやゲートウェイの設定を変更すると、リモートデスクトップ(RDP)接続が切断され、サーバーに接続できなくなる可能性があります。IPアドレス設定の変更は、以下の点を必ず確認してください。
- 変更前の設定値を必ず控えておく
- VPSのコントロールパネルからコンソール接続ができることを確認しておく(RDP以外の接続手段)
- 設定を誤った場合にVPSの再起動やコンソールからの復旧が可能か確認しておく
本セクションでは操作手順を解説しますが、VPS環境では実際にIP設定を変更せず、確認コマンドの実行にとどめることを強く推奨します。設定変更の練習は、ローカルの仮想環境(Hyper-Vなど)で行うのが安全です。
6.6.1 静的IPアドレスの設定
新しいIPアドレスを手動で設定するには、New-NetIPAddressコマンドレットを使用します。サーバーは一般的に、DHCPによる自動割り当てではなく、静的(固定)IPアドレスを使用します。サーバーのIPアドレスが変わると、クライアントからの接続先が変わってしまい、サービスに影響が出るためです。
[実行環境: PowerShell 7.4 (管理者)]
# 静的IPアドレスを設定する(例)
New-NetIPAddress `
-InterfaceAlias "Ethernet0" `
-IPAddress "192.168.1.100" `
-PrefixLength 24 `
-DefaultGateway "192.168.1.1"
各パラメータの意味は以下のとおりです。
| パラメータ | 説明 | 例 |
|---|---|---|
| -InterfaceAlias | 設定対象のネットワークアダプター名 | “Ethernet0” |
| -IPAddress | 設定するIPアドレス | “192.168.1.100” |
| -PrefixLength | サブネットマスクのCIDR表記 | 24(= 255.255.255.0) |
| -DefaultGateway | デフォルトゲートウェイのIPアドレス | “192.168.1.1” |
6.6.2 既存設定の変更と削除
既に設定されているIPアドレスを変更する場合はSet-NetIPAddress、削除する場合はRemove-NetIPAddressを使用します。
[実行環境: PowerShell 7.4 (管理者)]
# 既存のIPアドレスのプレフィックス長を変更する
Set-NetIPAddress -InterfaceAlias "Ethernet0" -IPAddress "192.168.1.100" -PrefixLength 25
# IPアドレスを削除する(確認プロンプトが表示される)
Remove-NetIPAddress -InterfaceAlias "Ethernet0" -IPAddress "192.168.1.100" -Confirm:$false
注意:
Set-NetIPAddressはIPアドレスそのものやデフォルトゲートウェイの変更はできません。IPアドレスを変更する場合は、いったんRemove-NetIPAddressで削除してからNew-NetIPAddressで再設定する手順になります。デフォルトゲートウェイの変更にはRemove-NetRouteとNew-NetRouteを使用します。
6.6.3 DHCPへの切り替え
静的IPアドレスからDHCP(Dynamic Host Configuration Protocol、IPアドレスの自動割り当て)に切り替えるには、以下のコマンドを使用します。
[実行環境: PowerShell 7.4 (管理者)]
# DHCPを有効にする
Set-NetIPInterface -InterfaceAlias "Ethernet0" -Dhcp Enabled
# DNSもDHCPから取得するように設定
Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" -ResetServerAddresses
DHCPを有効にすると、ネットワーク上のDHCPサーバーからIPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSサーバーが自動的に割り当てられます。ただし、サーバー用途ではIPアドレスが変わるとサービスに影響が出るため、一般的にはDHCPではなく静的IPアドレスが推奨されます。
6.7 DNS設定
IPアドレスの設定ができたら、次はDNS(Domain Name System)について学びましょう。DNSは、インターネットを利用するうえで不可欠な仕組みです。
6.7.1 DNSとは
DNSは、人間が覚えやすいドメイン名(例:www.example.com)を、コンピュータが通信に使うIPアドレス(例:93.184.216.34)に変換(名前解決)する仕組みです。電話帳に例えると、相手の名前(ドメイン名)から電話番号(IPアドレス)を調べるようなものです。
名前解決の流れ
ブラウザでwww.example.comにアクセスする場合、以下のような流れで名前解決が行われます。
- サーバーのDNSキャッシュ(過去の問い合わせ結果の記憶)を確認
- キャッシュになければ、設定されたDNSサーバーに問い合わせ
- DNSサーバーが該当するドメインのIPアドレスを回答
- 取得したIPアドレスを使って通信を開始
この仕組みにより、数字の羅列であるIPアドレスを覚える必要なく、わかりやすいドメイン名でサーバーにアクセスできるのです。
DNSサーバーの役割
DNSサーバーは、ドメイン名とIPアドレスの対応情報を管理しているサーバーです。代表的なパブリックDNSサーバーには以下があります。
| 提供元 | プライマリDNS | セカンダリDNS |
|---|---|---|
| Google Public DNS | 8.8.8.8 | 8.8.4.4 |
| Cloudflare DNS | 1.1.1.1 | 1.0.0.1 |
VPS環境では、プロバイダーが提供するDNSサーバーが設定されていることが多いですが、上記のパブリックDNSサーバーを使用することもあります。
6.7.2 DNS設定の確認
現在設定されているDNSサーバーを確認するには、Get-DnsClientServerAddressコマンドレットを使用します。
[実行環境: PowerShell 7.4 (管理者)]
# DNS設定を確認(IPv4のみ)
Get-DnsClientServerAddress -AddressFamily IPv4
実行結果の例
InterfaceAlias Interface Address ServerAddresses
Index Family
-------------- --------- ------- ---------------
Ethernet0 6 IPv4 {8.8.8.8, 8.8.4.4}
Loopback Pseudo-Interface 1 1 IPv4 {}
ServerAddresses列に表示されているのが、そのアダプターに設定されているDNSサーバーのIPアドレスです。複数設定されている場合は、先頭のアドレス(プライマリDNS)に優先的に問い合わせが行われ、応答がない場合に次のアドレス(セカンダリDNS)が使用されます。
6.7.3 DNS設定の変更
DNSサーバーの設定を変更するには、Set-DnsClientServerAddressコマンドレットを使用します。
[実行環境: PowerShell 7.4 (管理者)]
# DNSサーバーをGoogle Public DNSに設定
Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" -ServerAddresses ("8.8.8.8", "8.8.4.4")
# 設定を確認
Get-DnsClientServerAddress -InterfaceAlias "Ethernet0" -AddressFamily IPv4
実行結果の例
InterfaceAlias Interface Address ServerAddresses
Index Family
-------------- --------- ------- ---------------
Ethernet0 6 IPv4 {8.8.8.8, 8.8.4.4}
注意: DNSサーバーの変更は、IPアドレスの変更と異なりネットワーク接続が切断されることはありません。ただし、誤ったDNSサーバーを設定すると名前解決ができなくなり、ドメイン名でのアクセス(Webサイトの閲覧やWindows Updateなど)ができなくなります。変更前の設定値は必ず控えておきましょう。
6.7.4 DNSキャッシュの確認とクリア
コンピュータは名前解決の結果を一定期間キャッシュ(一時保存)します。これにより、同じドメイン名への問い合わせを毎回DNSサーバーに行う必要がなくなり、通信が高速化されます。
[実行環境: PowerShell 7.4 (管理者)]
# DNSキャッシュの内容を確認
Get-DnsClientCache | Select-Object -Property Entry, RecordName, Data, TimeToLive -First 10
実行結果の例
Entry RecordName Data TimeToLive
----- ---------- ---- ----------
www.google.com www.google.com 142.250.207.100 205
dns.google dns.google 8.8.8.8 3312
DNSの設定を変更した後や、Webサイトのサーバー移転後などに古いキャッシュが残っている場合は、キャッシュをクリアすることで最新の情報を取得できます。
[実行環境: PowerShell 7.4 (管理者)]
# DNSキャッシュをクリア
Clear-DnsClientCache
# クリアされたことを確認(結果が空になる)
Get-DnsClientCache
実務でのポイント: 「Webサイトにアクセスできない」「ドメイン名でサーバーに接続できない」というトラブル時に、まず試す定番の操作が「DNSキャッシュのクリア」です。古いキャッシュが原因で正しいIPアドレスに到達できないケースは少なくありません。
6.8 接続テスト
ネットワーク設定が正しく行われているかを確認するために、接続テスト(疎通確認)を行います。PowerShellには、用途に応じた複数の接続テスト用コマンドレットが用意されています。
6.8.1 Test-Connectionコマンドレット
Test-Connectionは、従来のpingコマンドに相当するコマンドレットで、ICMP(Internet Control Message Protocol)エコー要求を送信して相手先との疎通を確認します。
[実行環境: PowerShell 7.4 (管理者)]
# Google Public DNSへの疎通確認
Test-Connection -TargetName "8.8.8.8" -Count 4
実行結果の例
Destination: 8.8.8.8
Ping Source Address Latency BufferSize Status
(ms) (B)
---- ------ ------- ------- ---------- ------
1 WIN-SERVER01 8.8.8.8 3 32 Success
2 WIN-SERVER01 8.8.8.8 3 32 Success
3 WIN-SERVER01 8.8.8.8 3 32 Success
4 WIN-SERVER01 8.8.8.8 4 32 Success
StatusがすべてSuccessであれば、対象との通信が正常に行えています。
PowerShell 7.4での注意点: PowerShell 7.4の
Test-Connectionでは、宛先を指定するパラメータ名が-TargetNameです。Windows PowerShell 5.1では-ComputerNameでしたが、PowerShell 7.xでは変更されています。スクリプトを作成する際にはご注意ください。
主なパラメータを紹介します。
| パラメータ | 説明 | 使用例 |
|---|---|---|
| -TargetName | 疎通確認先のIPアドレスまたはホスト名 | -TargetName "8.8.8.8" |
| -Count | 送信するエコー要求の回数(デフォルト:4回) | -Count 10 |
| -Quiet | 結果をTrue/Falseのみで返す(スクリプト向け) | -Quiet |
| -IPv4 | IPv4での接続を強制する | -IPv4 |
| -Traceroute | トレースルートを実行する(経路を表示) | -Traceroute |
| -TcpPort | 指定したTCPポートへの接続をテストする | -TcpPort 443 |
-Quietパラメータは、スクリプト内で接続状態に応じた処理を行うときに便利です。
[実行環境: PowerShell 7.4 (管理者)]
# 疎通結果をTrue/Falseで取得
$isReachable = Test-Connection -TargetName "8.8.8.8" -Count 1 -Quiet
Write-Host "8.8.8.8 への疎通: $isReachable"
実行結果の例
8.8.8.8 への疎通: True
6.8.2 Test-NetConnectionコマンドレット
Test-NetConnectionは、Test-Connectionよりも多機能な接続テストコマンドレットです。ICMP疎通確認に加えて、特定のTCPポートへの接続テストやトレースルートも実行できます。ネットワークのトラブルシューティングではこちらを多用します。
[実行環境: PowerShell 7.4 (管理者)]
# 基本的な接続テスト
Test-NetConnection -ComputerName "8.8.8.8"
実行結果の例
ComputerName : 8.8.8.8
RemoteAddress : 8.8.8.8
InterfaceAlias : Ethernet0
SourceAddress : 198.51.100.10
PingSucceeded : True
PingReplyDetails (RTT) : 3 ms
ポート疎通確認(-Port)
特定のTCPポートが開いているかどうかを確認するには、-Portパラメータを使用します。Webサーバーへの接続テスト(HTTPS:ポート443)やRDP接続テスト(ポート3389)などに活用できます。
[実行環境: PowerShell 7.4 (管理者)]
# HTTPS(ポート443)の疎通確認
Test-NetConnection -ComputerName "www.google.com" -Port 443
実行結果の例
ComputerName : www.google.com
RemoteAddress : 142.250.207.100
RemotePort : 443
InterfaceAlias : Ethernet0
SourceAddress : 198.51.100.10
TcpTestSucceeded : True
TcpTestSucceeded : Trueであれば、そのポートでの通信が可能です。Falseの場合は、ファイアウォールでブロックされているか、対象サーバーでそのポートのサービスが動作していない可能性があります。
トレースルート(-TraceRoute)
トレースルートは、通信先までの経路(どのルーターを経由しているか)を表示する機能です。通信経路上のどこで問題が発生しているかを特定するのに役立ちます。
[実行環境: PowerShell 7.4 (管理者)]
# トレースルートの実行
Test-NetConnection -ComputerName "8.8.8.8" -TraceRoute
実行結果の例
ComputerName : 8.8.8.8
RemoteAddress : 8.8.8.8
InterfaceAlias : Ethernet0
SourceAddress : 198.51.100.10
PingSucceeded : True
PingReplyDetails (RTT) : 3 ms
TraceRoute : 198.51.100.1
203.0.113.1
203.0.113.5
8.8.8.8
TraceRouteの各行が、通信経路上の中継点(ホップ)です。最初のアドレスはデフォルトゲートウェイで、そこからインターネット上のルーターを経由して最終的な宛先に到達しています。
Tips:
-CommonTCPPortパラメータを使うと、代表的なポートを名前で指定できます。Test-NetConnection -ComputerName "example.com" -CommonTCPPort HTTPとすれば、ポート80への接続テストが行えます。利用可能な値はHTTP、RDP、SMB、WINRMです。
6.8.3 Resolve-DnsNameコマンドレット
Resolve-DnsNameは、DNS名前解決を明示的にテストするコマンドレットです。従来のnslookupコマンドに相当しますが、PowerShellオブジェクトとして結果を返すため、スクリプトでの利用に適しています。
[実行環境: PowerShell 7.4 (管理者)]
# ドメイン名からIPアドレスを解決(Aレコード)
Resolve-DnsName -Name "www.google.com" -Type A
実行結果の例
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
www.google.com A 189 Answer 142.250.207.100
-Typeパラメータで問い合わせるDNSレコードの種類を指定できます。
| レコードタイプ | 説明 | 使用例 |
|---|---|---|
| A | ドメイン名 → IPv4アドレスの対応 | 最もよく使う基本の名前解決 |
| AAAA | ドメイン名 → IPv6アドレスの対応 | IPv6環境での名前解決 |
| MX | メールサーバーのアドレス | メール配送先の確認 |
| NS | ネームサーバー(DNSサーバー)のアドレス | ドメインの権威DNSサーバーの確認 |
| CNAME | ドメインの別名 | CDNや負荷分散環境の確認 |
| TXT | テキスト情報 | SPFレコード、ドメイン認証の確認 |
[実行環境: PowerShell 7.4 (管理者)]
# MXレコード(メールサーバー)を確認
Resolve-DnsName -Name "google.com" -Type MX
# NSレコード(ネームサーバー)を確認
Resolve-DnsName -Name "google.com" -Type NS
実務でのポイント: 「Webサイトにアクセスできない」というトラブル時に、
Resolve-DnsNameで名前解決ができるかどうかを確認することは重要な切り分け手段です。名前解決が失敗する場合はDNSの問題、成功するのにアクセスできない場合はネットワーク経路やファイアウォールの問題と判断できます。
6.9 ネットワークトラブルシューティング
ネットワーク設定を学んだところで、最も実務で役立つスキルのひとつである「トラブルシューティング」の手順を紹介します。ネットワークの問題は「接続できない」という症状で現れることが多いですが、原因はさまざまです。論理的な順序で切り分けることで、効率的に原因を特定できます。
6.9.1 接続できない場合の確認手順
ネットワークトラブルの切り分けは、OSI参照モデルの下位層(物理的な接続)から上位層(アプリケーション)に向かって確認するのが基本です。以下の手順で順番に確認していきましょう。
Step 1:ネットワークアダプターの状態確認
まず、ネットワークアダプターが有効で、リンクが確立されているか(StatusがUpか)を確認します。
[実行環境: PowerShell 7.4 (管理者)]
# アダプターの状態を確認
Get-NetAdapter | Select-Object -Property Name, Status, LinkSpeed
StatusがDownの場合は、物理的な接続(ケーブル)の問題、ドライバーの問題、またはアダプターが無効化されている可能性があります。アダプターを有効にするにはEnable-NetAdapter -Name "Ethernet0"を実行します。
Step 2:IPアドレス設定の確認
アダプターがUpの場合、次にIPアドレスが正しく設定されているかを確認します。
[実行環境: PowerShell 7.4 (管理者)]
# IPアドレス設定を確認
Get-NetIPConfiguration
IPv4Addressが表示されない、あるいはAPIPAアドレス(169.254.x.x)が表示される場合は、IPアドレスの設定が正しくないか、DHCPサーバーからアドレスを取得できていません。
APIPAとは: APIPA(Automatic Private IP Addressing)は、DHCPサーバーからIPアドレスを取得できなかった場合に、Windowsが自動的に割り当てる169.254.x.x のアドレスです。このアドレスでは外部との通信はできません。
Step 3:デフォルトゲートウェイへの疎通確認
IPアドレスが正しく設定されている場合、次にデフォルトゲートウェイとの通信を確認します。
[実行環境: PowerShell 7.4 (管理者)]
# デフォルトゲートウェイへの疎通確認
# まずゲートウェイのアドレスを確認
$gateway = (Get-NetIPConfiguration).IPv4DefaultGateway.NextHop
Write-Host "デフォルトゲートウェイ: $gateway"
# ゲートウェイにPing
Test-Connection -TargetName $gateway -Count 2
ゲートウェイへの疎通が失敗する場合は、以下の原因が考えられます。
- ゲートウェイのIPアドレスが間違っている
- ゲートウェイ機器(ルーター)に障害が発生している
- サブネットマスクの設定が間違っている(同じネットワークにいるように見えない)
Step 4:DNS名前解決の確認
ゲートウェイへの疎通が問題ない場合、次にDNSの名前解決を確認します。
[実行環境: PowerShell 7.4 (管理者)]
# 外部のIPアドレスに疎通確認(DNSを使わない)
Test-Connection -TargetName "8.8.8.8" -Count 2
# DNSによる名前解決を確認
Resolve-DnsName -Name "www.google.com" -Type A
IPアドレスでの疎通は成功するのに名前解決が失敗する場合は、DNS設定に問題があります。DNSサーバーのアドレスが正しいか、DNSサーバー自体に障害がないかを確認してください。
Step 5:宛先ポートへの疎通確認
名前解決も問題ない場合は、宛先の特定ポートへの接続を確認します。
[実行環境: PowerShell 7.4 (管理者)]
# 宛先のポート(例:HTTPS 443)への接続テスト
Test-NetConnection -ComputerName "www.google.com" -Port 443
TcpTestSucceededがFalseの場合は、自分側または相手側のファイアウォールでブロックされている、あるいは宛先でそのポートのサービスが動作していない可能性があります。
6.9.2 トラブルシューティングのフローチャート
以上の手順をまとめると、以下のような流れになります。
| 確認ステップ | 使用コマンド | 失敗時の原因 |
|---|---|---|
| 1. アダプター状態 | Get-NetAdapter |
物理接続、ドライバー、アダプター無効化 |
| 2. IP設定 | Get-NetIPConfiguration |
IP未設定、APIPA、設定誤り |
| 3. ゲートウェイ疎通 | Test-Connection |
ゲートウェイ設定誤り、ルーター障害 |
| 4. DNS名前解決 | Resolve-DnsName |
DNSサーバー設定誤り、DNSサーバー障害 |
| 5. ポート疎通 | Test-NetConnection -Port |
ファイアウォール、サービス未起動 |
この順序で確認していくと、どの段階(レイヤー)で問題が発生しているかを効率的に特定できます。下位の確認が通っているのに上位で失敗する場合は、そのレイヤーに問題があると判断できます。
6.9.3 よくあるエラーと対処法
| 症状 | 考えられる原因 | 対処法 |
|---|---|---|
| すべてのPingが「TimedOut」 | ネットワーク未接続、ファイアウォールでICMPブロック | アダプター状態の確認、ファイアウォール設定の確認 |
| IPアドレスが169.254.x.x | DHCPサーバーから取得失敗 | DHCPサーバーの確認、または静的IP設定に切り替え |
| ゲートウェイにPingは通るが外部に出られない | ルーターの設定不備、ISP側の障害 | ルーター設定の確認、ISPへの問い合わせ |
| IPアドレスでアクセスできるがドメイン名では不可 | DNS設定の誤り、DNSサーバー障害 | Get-DnsClientServerAddressで設定確認、DNSサーバー変更 |
| 特定のポートだけ接続不可 | ファイアウォールでブロック、サービス未起動 | Get-NetFirewallRuleで確認(次回学習)、サービス状態の確認 |
Resolve-DnsNameでタイムアウト |
DNSサーバーが応答しない | DNSサーバーのIPアドレスにPing、別のDNSサーバーを設定 |
6.10 実践:ネットワーク設定の確認スクリプト
ここまで学んだコマンドレットを組み合わせて、ネットワーク設定を一括確認するスクリプトを作成してみましょう。このスクリプトは、トラブルシューティングの最初の一歩として役立ちます。
[実行環境: PowerShell 7.4 (管理者)]
# ネットワーク設定の一括確認スクリプト
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " ネットワーク設定確認レポート" -ForegroundColor Cyan
Write-Host " 実行日時: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
# 1. ネットワークアダプターの状態
Write-Host "`n--- 1. ネットワークアダプター ---" -ForegroundColor Yellow
Get-NetAdapter |
Where-Object { $_.Status -eq "Up" } |
Select-Object -Property Name, Status, MacAddress, LinkSpeed |
Format-Table -AutoSize
# 2. IPアドレス設定
Write-Host "--- 2. IPv4アドレス設定 ---" -ForegroundColor Yellow
Get-NetIPAddress -AddressFamily IPv4 |
Where-Object { $_.InterfaceAlias -notlike "Loopback*" } |
Select-Object -Property InterfaceAlias, IPAddress, PrefixLength, PrefixOrigin |
Format-Table -AutoSize
# 3. デフォルトゲートウェイ
Write-Host "--- 3. デフォルトゲートウェイ ---" -ForegroundColor Yellow
$gw = (Get-NetIPConfiguration).IPv4DefaultGateway
if ($gw) {
Write-Host " ゲートウェイ: $($gw.NextHop)"
$gwResult = Test-Connection -TargetName $gw.NextHop -Count 1 -Quiet
Write-Host " 疎通確認: $gwResult" -ForegroundColor $(if ($gwResult) { "Green" } else { "Red" })
} else {
Write-Host " デフォルトゲートウェイが設定されていません" -ForegroundColor Red
}
# 4. DNSサーバー
Write-Host "`n--- 4. DNSサーバー ---" -ForegroundColor Yellow
Get-DnsClientServerAddress -AddressFamily IPv4 |
Where-Object { $_.ServerAddresses.Count -gt 0 } |
Select-Object -Property InterfaceAlias, ServerAddresses |
Format-Table -AutoSize
# 5. DNS名前解決テスト
Write-Host "--- 5. DNS名前解決テスト ---" -ForegroundColor Yellow
try {
$dnsResult = Resolve-DnsName -Name "www.google.com" -Type A -ErrorAction Stop
Write-Host " www.google.com → $($dnsResult[0].IPAddress)" -ForegroundColor Green
} catch {
Write-Host " DNS名前解決に失敗しました: $_" -ForegroundColor Red
}
# 6. 外部接続テスト
Write-Host "`n--- 6. 外部接続テスト ---" -ForegroundColor Yellow
$targets = @("8.8.8.8", "1.1.1.1")
foreach ($target in $targets) {
$result = Test-Connection -TargetName $target -Count 1 -Quiet
$color = if ($result) { "Green" } else { "Red" }
Write-Host " $target : $result" -ForegroundColor $color
}
Write-Host "`n========================================" -ForegroundColor Cyan
Write-Host " 確認完了" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
実行結果の例
========================================
ネットワーク設定確認レポート
実行日時: 2026-02-08 14:30:00
========================================
--- 1. ネットワークアダプター ---
Name Status MacAddress LinkSpeed
---- ------ ---------- ---------
Ethernet0 Up 00-50-56-A1-2B-3C 10 Gbps
--- 2. IPv4アドレス設定 ---
InterfaceAlias IPAddress PrefixLength PrefixOrigin
-------------- --------- ------------ ------------
Ethernet0 198.51.100.10 23 Manual
--- 3. デフォルトゲートウェイ ---
ゲートウェイ: 198.51.100.1
疎通確認: True
--- 4. DNSサーバー ---
InterfaceAlias ServerAddresses
-------------- ---------------
Ethernet0 {8.8.8.8, 8.8.4.4}
--- 5. DNS名前解決テスト ---
www.google.com → 142.250.207.100
--- 6. 外部接続テスト ---
8.8.8.8 : True
1.1.1.1 : True
========================================
確認完了
========================================
学習のポイント: このスクリプトでは、これまで学んだコマンドレットを組み合わせて実用的なツールを作成しています。第4回で学んだ変数、条件分岐、ループ処理が活用されていることにも注目してください。実務では、このようなスクリプトをあらかじめ用意しておくことで、トラブル発生時に素早く状況を把握できます。
6.11 まとめ
第6回では、ネットワーク設定の基礎について学びました。ここで学んだ内容を振り返りましょう。
- TCP/IPの基礎知識
- IPアドレスはネットワーク上のコンピュータの「住所」で、IPv4は32ビット(4オクテット)で構成される
- プライベートアドレス(10.x.x.x、172.16-31.x.x、192.168.x.x)とパブリックアドレスの違い
- サブネットマスクはネットワーク部とホスト部の境界を定め、CIDR表記(/24等)で記述できる
- デフォルトゲートウェイは異なるネットワークへの「出口」となるルーター
- ネットワーク設定の確認
Get-NetAdapterでアダプターの状態(Up/Down)を確認Get-NetIPConfigurationでIP設定の概要を一覧表示Get-NetIPAddressで詳細なIPアドレス情報を取得Get-NetRouteでルーティングテーブルを確認
- IPアドレスの設定
New-NetIPAddressで静的IPアドレスを設定、Remove-NetIPAddressで削除- VPS環境でのIP変更はRDP接続断のリスクがあるため要注意
- DNS設定
- DNSはドメイン名をIPアドレスに変換する仕組み
Get-DnsClientServerAddressで設定確認、Set-DnsClientServerAddressで変更Clear-DnsClientCacheでDNSキャッシュをクリア
- 接続テスト
Test-Connection(-TargetName)でICMP疎通確認Test-NetConnection(-Port、-TraceRoute)でポート疎通・経路確認Resolve-DnsNameでDNS名前解決の確認
- トラブルシューティング
- アダプター状態 → IP設定 → ゲートウェイ疎通 → DNS名前解決 → ポート疎通の順で切り分け
- 下位レイヤーから順番に確認することで、効率的に原因を特定
ネットワーク設定はサーバー管理の中核をなす知識です。今回学んだコマンドレットとトラブルシューティング手順は、日常的な運用でも頻繁に使うことになります。特にTest-Connection、Test-NetConnection、Resolve-DnsNameの3つは、ネットワーク障害時の必須ツールとして覚えておいてください。
6.12 次回予告
第7回では「Windows Defender Firewall ― ネットワークセキュリティの第一歩」と題して、ファイアウォールの役割と仕組み、受信規則・送信規則の確認と作成、RDPやHTTPなど実務で必要なポート開放の設定方法を学びます。今回学んだネットワークの基礎知識を土台に、サーバーのセキュリティを強化する方法を習得しましょう。
6.13 参考リンク
- Get-NetAdapter – Microsoft Learn
- Get-NetIPConfiguration – Microsoft Learn
- Get-NetIPAddress – Microsoft Learn
- New-NetIPAddress – Microsoft Learn
- Get-DnsClientServerAddress – Microsoft Learn
- Resolve-DnsName – Microsoft Learn
- Test-Connection (PowerShell 7.4) – Microsoft Learn
- Test-NetConnection – Microsoft Learn
- Windows Server ネットワーク – Microsoft Learn
