Windowsで固定IPをコマンド一発で設定したいとき、netshは今でも便利です。ただしインターフェイス名の指定ミスや、ゲートウェイ/DNS未設定があると「設定できない」「設定後にwww.google.comへ疎通できない」といったトラブルが起きがち。最短で原因を切り分ける手順をまとめます。
netshで起きるトラブルは2種類に分けて考える
「netshで固定IPを設定したいのにエラーで失敗する」ケースと、「コマンドは通ったのにインターネット疎通や名前解決ができない」ケースでは、疑うべきポイントが少し違います。まずは症状を整理して、無駄な遠回りを減らしましょう。
| 症状 | よくある原因 | 最初にやること |
|---|---|---|
| netsh実行時に「インターフェイスが不明」などで失敗 | インターフェイス名の指定ミス、引用符(””)不足、管理者権限不足、対象NICが無効/未接続 | インターフェイス名・インデックスを正確に確認してから再実行 |
固定IP設定後に ping www.google.com が通らない | デフォルトゲートウェイ未設定/誤り、DNS未設定/誤り、サブネットマスク誤り、経路(ルータ/VLAN)問題 | ping 8.8.8.8 と nslookup で「経路」と「DNS」を切り分け |
まず結論:最優先で疑うのは「インターフェイス名の不一致」
netsh interface ipv4 set address "Ethernet" static ... のように実行して失敗する場合、原因の本命は「指定しているインターフェイス名が実機と一致していない」ことです。特に以下のような環境差で、名前は簡単にズレます。
- Windowsの表示言語が日本語(例:Ethernet ではなく イーサネット)
- 古い呼称が残っている(例:Local Area Connection)
- Wi-Fi / 有線 / USB-LAN / VPN / 仮想スイッチ(Hyper-VのvEthernet等)が混在している
- 同型NICが複数あり、意図しない方を設定している
そして「コマンドは成功したのにwww.google.comへ疎通できない」場合は、ゲートウェイやDNSが未設定、もしくは値がネットワーク設計と合っていない可能性が高いです。固定IPは、IPアドレスだけ入れてもインターネットに出られないことが多い点が落とし穴です。
作業前の注意:リモート接続中は“切断”を前提に段取りする
RDPやリモート管理で作業している場合、IP変更の瞬間にセッションが切れることがあります。サーバー機での作業は特に、以下を意識してください。
- 可能ならコンソール(iLO/iDRAC/VMコンソール等)に切り替えて作業する
- 変更前の設定を控える(復旧用)
- 同一セグメント内で別の管理経路(別NIC、別管理IP)があるか確認する
変更前に“現状を保存”しておく(復旧が早い)
ネットワーク変更は、うまくいかないと作業端末そのものが孤立します。切り戻しを速くするために、最低限「今の設定」をテキストで保存しておくと安心です。
- netsh dump:現在のネットワーク設定を再現できるスクリプトとして出力
- ipconfig /all:画面上でも確認しやすい形で控えを残す
- route print:既定経路(0.0.0.0/0)がどこを向いているかを控える
netsh dump > "C:\NetConfig\netsh_config.txt"
ipconfig /all > "C:\NetConfig\ipconfig_all.txt"
route print > "C:\NetConfig\route_print.txt"
フォルダがない場合は先に作成してください。万一のとき、このログがあるだけで復旧スピードが段違いになります。
インターフェイス名を正確に確認する(ここがズレると失敗する)
netshのエラーを最短で潰すには、まずOSが認識しているインターフェイス名(またはインデックス)をそのまま使うのが鉄則です。特に名前にスペースや括弧が含まれることもあるため、基本は引用符で囲みます。
| 確認コマンド | 用途 | 見るべきポイント |
|---|---|---|
netsh interface show interface | インターフェイス名を一覧で確認(最短) | 目的のNICの「インターフェイス名」をそのままコピー |
netsh interface ipv4 show interfaces | インデックス(Idx)や状態も含めて確認 | Idxと名前、状態(Connected/Disconnected) |
netsh interface ipv4 show config | IP/ゲートウェイ/DNSなど、現在設定の確認 | 固定/ DHCP、デフォルトゲートウェイ、DNSサーバー |
ipconfig /all | Windows標準の表示で全体像を確認 | IPv4アドレス/サブネット/ゲートウェイ/DNSの整合 |
「Ethernet」と決め打ちせず、実際に表示された名称を使います。たとえば表示が「イーサネット」なら、netsh側でも同じ文字列を使う必要があります。
名前が変わりやすい環境は「Idx(インデックス)」指定が安全
多言語環境やテンプレート展開(VM複製)では、インターフェイス名が微妙に変わることがあります。その場合は、一覧に出る Idx(インデックス) を使うとスクリプトが安定します(同一マシン内での運用に向きます)。
netsh interface ipv4 show interfaces
例として、Idxが 12 のNICに固定IPを入れる場合は次のように指定できます。
netsh interface ipv4 set address name=12 source=static address=192.168.10.50 mask=255.255.255.0 gateway=192.168.10.1 gwmetric=1
netshで固定IPを設定する(正しい名前で、ゲートウェイまで入れる)
固定IP設定で最低限押さえるべき項目は、IPアドレス、サブネットマスク、デフォルトゲートウェイです。インターネット疎通が必要な端末/サーバーなら、ゲートウェイはほぼ必須です(社内閉域のみで完結する端末は例外)。
| 設定項目 | 意味 | よくあるミス |
|---|---|---|
| IPアドレス | 端末自身のアドレス | DHCP配布範囲と重複、別セグメントの値を入れる |
| サブネットマスク | 同一セグメントの範囲 | /24のつもりで/16を入れて経路が崩れる、逆も多い |
| デフォルトゲートウェイ | 外部ネットワークへ出るための出口 | ゲートウェイ未設定、ゲートウェイが同一サブネット外 |
| GWメトリック | 複数経路がある場合の優先度 | 別NICの経路が優先され、意図しない出口から出る |
短い書き方(覚えやすい定番)
実務でよく使われるのは、引数を並べる短い形式です。
netsh interface ipv4 set address name="イーサネット" static 192.168.10.50 255.255.255.0 192.168.10.1
パラメータを明示する書き方(スクリプト向き)
引数の意味を明確にしたい場合は、パラメータ形式が安全です。ゲートウェイを設定するなら、メトリック(例:1)も明示すると混乱が減ります。
netsh interface ipv4 set address name="イーサネット" source=static address=192.168.10.50 mask=255.255.255.0 gateway=192.168.10.1 gwmetric=1
テストだけしたい場合は「store=active」も使える
「まずは再起動までの間だけ固定IPで動作確認したい」というときは、設定を一時的にする store=active が便利です。問題なければ store=persistent(既定)で入れ直す、という進め方が安全です。
netsh interface ipv4 set address name="イーサネット" source=static address=192.168.10.50 mask=255.255.255.0 gateway=192.168.10.1 gwmetric=1 store=active
「社内ネットワークにはつながるが、外(インターネット)に出なくてよい」という設計なら、あえてゲートウェイを入れず gateway=none とする構成もあります。ただし、その場合は当然 ping 8.8.8.8 のような外部疎通は失敗します。目的に合わせて判断してください。
DHCPへ戻したい(切り戻し用)
固定IPの設定が原因で通信不能になったとき、すぐDHCPに戻せるようにしておくと復旧が早いです。
netsh interface ipv4 set address name="イーサネット" source=dhcp
DNSを設定する(www.google.comが通らない最大要因)
ping www.google.com は「名前解決(DNS)」と「疎通(経路)」の両方が必要です。固定IPでよくあるのは、IP/ゲートウェイは正しいのにDNSが未設定で名前解決できないパターンです。
DNSを静的に指定する(推奨:primary + 予備)
netsh interface ipv4 set dnsservers name="イーサネット" source=static address=8.8.8.8
予備DNS(セカンダリ)を追加する場合は、次のように追加します(indexは2を指定することが多いです)。
netsh interface ipv4 add dnsservers name="イーサネット" address=8.8.4.4 index=2
DNSをDHCPに戻す
netsh interface ipv4 set dnsservers name="イーサネット" source=dhcp
設定後に必ず確認する
DNS設定は「入れたつもり」になりやすいので、次の確認をセットで行うのが確実です。
netsh interface ipv4 show dnsservers
ipconfig /all
設定が反映されたかを確認するチェックリスト
netshがOKを返しても、意図したNICに入っていなかったり、別の設定が優先されたりすると「設定したのに直らない」状態になります。以下の観点で確認します。
| 確認項目 | 確認コマンド | OKの目安 |
|---|---|---|
| 対象NICが合っているか | netsh interface ipv4 show interfaces | 目的のNIC名/Idxを特定できている |
| IPv4アドレス/マスク | ipconfig /all | 入力したIP/マスクになっている |
| デフォルトゲートウェイ | ipconfig /all | ゲートウェイが設定され、同一サブネット内 |
| DNSサーバー | netsh interface ipv4 show dnsservers | 意図したDNSが表示される |
| 経路の優先順位 | route print | 0.0.0.0/0 の経路が意図したNIC/ゲートウェイ |
「www.google.comが通らない」を最短で切り分ける(DNSか、経路か)
ここからは、固定IP設定後に疎通できない場合の切り分けです。ポイントはIPアドレス直打ち(経路)と名前解決(DNS)を分けて確認することです。
切り分け手順(この順番が早い)
- NICがリンクしているか(ケーブル/無線)
- ゲートウェイに到達できるか
- 外部IP(例:8.8.8.8)に到達できるか
- DNSで名前解決できるか(nslookup)
- 名前解決したIPへ到達できるか
具体的には、次のコマンドを順に実行します。
ping 127.0.0.1
ping <自分のIPv4アドレス>
ping <デフォルトゲートウェイ>
ping 8.8.8.8
ping -4 www.google.com
nslookup www.google.com
| 結果 | 状況の見立て | 次に見るポイント |
|---|---|---|
| ゲートウェイまで通らない | 同一LAN内の問題(IP/マスク/物理/VLAN/無線接続) | IP重複、マスク誤り、ケーブル、スイッチ/VLAN、NIC無効 |
| ゲートウェイは通るが 8.8.8.8 が通らない | 外部への経路がない(ゲートウェイ誤り、上位ルータ/回線側) | ゲートウェイの値、ルータの設定、別NICが既定経路になっていないか |
| 8.8.8.8 は通るが www.google.com が通らない | DNS問題が濃厚(名前解決できていない) | DNSサーバー設定、nslookupの結果、ipconfig /flushdns |
| nslookupは成功するが pingが通らない | ICMP遮断、ファイアウォール、経路の一部で遮断 | tracertでどこまで届くか、セキュリティ機器の制限 |
DNSが怪しいときの深掘りポイント
DNSは「サーバーアドレスが正しい」だけでなく、次の要素でハマることがあります。
- 社内DNSしか許可されておらず、外部DNS(8.8.8.8等)へ出られない
- VPN接続や社内プロキシの前提があり、単純な外部疎通ができない
- DNSサフィックス(例:corp.example.local)が必要な環境で、社内名が引けない
- 古いキャッシュが残り、切り替え直後に誤った名前解決をする
キャッシュが疑わしい場合は、次でクリアします。
ipconfig /flushdns
また、DNSサーバーを明示して応答を確認したい場合は、nslookupでサーバーを指定します。
nslookup www.google.com 8.8.8.8
経路が怪しいときの深掘りポイント(0.0.0.0/0を確認)
固定IP後に外へ出られない原因として、実は「別NICの既定経路が優先されている」こともあります。例えば、VPNアダプターや仮想アダプターが同時に有効だと、意図しない出口に向かってしまうことがあります。
次のコマンドで、既定経路(0.0.0.0)がどのインターフェイスに向いているかを確認してください。
route print
複数の既定経路がある場合は、メトリックが小さい方が優先されます。netshでゲートウェイ設定時に gwmetric=1 を入れておくと、意図した経路に寄せやすくなります(ただし環境設計により最適値は変わります)。
netshがエラーになるときに見落としがちなポイント
「インターフェイスが不明」以外にも、地味にハマりやすい点をまとめます。
- 引用符の付け忘れ:インターフェイス名にスペースがあるときは必須(例:
"Local Area Connection") - 管理者権限:ネットワーク設定は標準ユーザーでは拒否されることがある(管理者としてコマンドプロンプト起動)
- 対象NICが無効:無効化されていると設定できても意図通り通信できない
- 想定外のNICを指定:有線ではなく仮想スイッチ側に入れていた、など
- ヘルプでサブコマンドを確認:環境によって微妙に選択肢が違うことがあるため
netsh interface ipv4 ?やnetsh interface ipv4 set address ?を活用 - IPv6優先の環境:名前解決はできてもIPv6経路が未整備で遅延する場合は
ping -4/ping -6で切り分け
よくある“設定ミス”を具体例で潰す
固定IPの値が間違っていると、netsh自体は成功しても通信できません。現場でよくあるミスを、症状とセットで押さえておきましょう。
| ミス | 起きやすい症状 | チェック方法 | 対処 |
|---|---|---|---|
| サブネットマスクが誤り | 同一セグメントのはずの機器に届かない、ARPが不自然 | ipconfig /all と設計書(/24, /23など)を照合 | 正しいマスクで再設定 |
| ゲートウェイが同一サブネット外 | LAN内はOKだが外へ出られない | ゲートウェイIPが自IP+マスクの範囲内か確認 | 正しいGWを設定 |
| IP重複(他端末と被る) | 通信が不安定、突然切れる | arp -a、スイッチのMACテーブル、重複検知ログ | 未使用IPへ変更、DHCP予約を活用 |
| DNSが未設定/誤り | IP宛ては通るがドメイン名が引けない | nslookup、netsh interface ipv4 show dnsservers | 正しいDNSを設定、必要なら予備も追加 |
| 別NICが既定経路になっている | 想定外の回線に出ようとして失敗 | route print(0.0.0.0/0) | メトリック調整、不要NICの無効化 |
特殊ケース:インストールメディア/WinPEで起動している場合
Windowsのインストール環境(WinPE)やリカバリ環境で作業していると、通常のWindowsと比べてネットワーク周りが制限されます。代表的には次のような違いがあり、netshで設定しても期待通りにならないことがあります。
- NICドライバーが読み込まれておらず、そもそもインターフェイスが出てこない
- 起動直後はネットワークが初期化されておらず、リンクが上がっていない
- インターフェイス名が通常起動時と異なる
WinPEでどうしても疎通を取りたい場合は、まず ipconfig でインターフェイスが存在するかを確認し、必要に応じてネットワーク初期化を試みます。
wpeutil InitializeNetwork
ipconfig /all
ただし、業務用途での恒久的な設定(固定IP化など)は、可能な限り通常起動したOS上で実施するほうが確実です。セーフモードで起動できる状況なら、そちらで作業するのも選択肢です。
どうしても直らないときの“最終リセット”
設定が泥沼化している場合、TCP/IPスタックのリセットで復旧することがあります。影響範囲が大きいので、サーバーでは特に慎重に実施してください。
- Winsockリセット(再起動が必要になることがあります)
- IPv4設定のリセット(再起動が必要)
netsh winsock reset
netsh interface ipv4 reset
まとめ:失敗しないための実務的な手順
- netshが失敗する原因の本命は「インターフェイス名の不一致」。まず一覧表示で正しい名前/Idxを取る
- 固定IPは「IPだけ」では不十分。インターネット疎通が必要ならゲートウェイとDNSもセットで設定する
ping 8.8.8.8とnslookupで、経路問題かDNS問題かを最短で切り分ける- 複数NICやVPNがある環境は
route printで既定経路(0.0.0.0/0)を必ず確認する - WinPE等の特殊環境では制限があるため、可能なら通常起動OSで作業する

コメント