2026年5月24日
2026年5月24日
静的IPを設定する手順(Windows/Linux)と設定後の確認方法
静的 IP(固定 IP)の設定は、「IP アドレス・プレフィックス長(サブネットマスク)・デフォルトゲートウェイ・DNS サーバー」の4つの値を先に決め、それを OS に登録するだけの作業です。つまずく原因の多くは、値の決め方と、Linux でどの仕組みがネットワークを管理しているかの見落としにあります。この記事では、値の決め方、Windows と Linux(netplan・NetworkManager・ifupdown)それぞれの設定手順、設定後の確認方法、失敗したときの戻し方までを順に説明します。
設定の前に決める4つの値
今の設定を控える
最初に、DHCP で受け取っている現在の値を控えておきます。これがそのまま静的設定の下書きになり、失敗したときに元へ戻す手がかりにもなります。
# Linux
ip -4 addr show
ip route show default
resolvectl status # systemd-resolved を使っている場合
rem Windows
ipconfig /all
Linux では inet 192.168.1.23/24 の /24 がプレフィックス長、default via 192.168.1.1 がゲートウェイです。Windows では「サブネット マスク」「デフォルト ゲートウェイ」「DNS サーバー」の欄を控えます。インターフェース名(Linux の eth0 や enp1s0、Windows の「イーサネット」など)もあとで使うので、合わせてメモしてください。
使うアドレスを選ぶ
固定にするアドレスは、DHCP サーバーが払い出す範囲の外から選びます。範囲の中にあるアドレスを固定すると、いずれ同じアドレスが別の機器に配られて重複します。払い出し範囲はルーターや DHCP サーバーの管理画面で確認できます。
なお、家庭や小さな事務所では、端末側で静的 IP を設定する代わりに、ルーターの「DHCP 予約(MAC アドレスとアドレスの固定割り当て)」を使う方法もあります。端末の設定を変えずに済み、DNS の値もルーター側でまとめて管理できるので、選べるならこちらのほうが管理は楽です。
選んだアドレスがすでに使われていないかは、Linux なら arping の重複検出モードで確かめられます。
# 応答がなければ(終了コード0)、そのアドレスは空いている
sudo arping -D -I eth0 -c 3 192.168.1.50
Windows で設定する
画面から設定する場合は、「設定」のネットワークの項目から使っているアダプターを開き、IP 割り当てを「自動(DHCP)」から「手動」に切り替えて、IPv4 の各値を入力します。Windows のバージョンや更新によって画面の名前や並びは変わります。Windows 11 では「ネットワークとインターネット」の下にあります(2026年10月現在)。
コマンドで設定する場合は、管理者として開いたターミナルで netsh を使います。インターフェース名は ipconfig に表示される名前と同じにします。
rem IP アドレス・サブネットマスク・ゲートウェイを設定
netsh interface ipv4 set address name="イーサネット" source=static address=192.168.1.50 mask=255.255.255.0 gateway=192.168.1.1
rem DNS サーバーを設定(1台目と2台目)
netsh interface ipv4 set dnsservers name="イーサネット" source=static address=192.168.1.1 register=primary
netsh interface ipv4 add dnsservers name="イーサネット" address=1.1.1.1 index=2
PowerShell の New-NetIPAddress や Set-DnsClientServerAddress でも同じことができます。どちらを使っても結果は同じなので、手順書として残しやすいほうを選んでください。元に戻すときは DHCP に切り替えます。
netsh interface ipv4 set address name="イーサネット" source=dhcp
netsh interface ipv4 set dnsservers name="イーサネット" source=dhcp
Linux で設定する
どの仕組みが管理しているかを確認する
Linux では、ディストリビューションやインストールの種類によってネットワークを管理する仕組みが異なり、仕組みに合わない場所に設定を書いても反映されません。目安は次のとおりです。
- Ubuntu Server:netplan(裏で systemd-networkd が動作)
- Ubuntu Desktop、RHEL 系(Rocky Linux、AlmaLinux など)、Fedora:NetworkManager
- Debian の最小構成:ifupdown(
/etc/network/interfaces)
ls /etc/netplan/、nmcli general status、systemctl is-active systemd-networkd などを実行し、実際に何が動いているかを確かめてから進めてください。
netplan(Ubuntu Server など)
/etc/netplan/ にある既存の YAML を確認し、バックアップを取ってから編集します。
# /etc/netplan/01-static.yaml の例
network:
version: 2
ethernets:
eth0:
dhcp4: false
addresses:
- 192.168.1.50/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [192.168.1.1, 1.1.1.1]
ゲートウェイの指定に古い gateway4 を使った例を見かけますが、現在は非推奨で、routes の to: default を使います。YAML はインデントがずれるだけで読み込めなくなるので、タブではなく半角スペースで揃えます。ファイルの権限が広すぎると警告が出るため、sudo chmod 600 で読み書きを root に限定しておきます。
反映には netplan try を使います。設定後に確認の入力をしないと一定時間で元の設定に戻るので、リモート接続が切れても締め出されずに済みます。
# 問題なければ時間内に Enter を押して確定する
sudo netplan try
コンソールから作業していて自動で戻る仕組みが要らない場合は、sudo netplan apply でも反映できます。
クラウドや VPS で cloud-init が 50-cloud-init.yaml を生成している場合、そのファイルを直接書き換えると再起動時に上書きされることがあります。cloud-init のネットワーク設定を止めるか、事業者の手順に従ってください。
NetworkManager(RHEL 系・デスクトップなど)
nmcli で接続名を確認し、その接続を手動設定に切り替えます。
nmcli connection show
sudo nmcli connection modify "接続名" ipv4.method manual \
ipv4.addresses 192.168.1.50/24 ipv4.gateway 192.168.1.1 \
ipv4.dns "192.168.1.1 1.1.1.1"
sudo nmcli connection up "接続名"
ipv4.method manual と ipv4.addresses は同じコマンドで指定します。アドレスを入れずに手動へ切り替えようとするとエラーになります。戻すときは ipv4.method auto にし、手動で入れた値は空にしておきます。
ifupdown(Debian など)
/etc/network/interfaces の該当インターフェースを次のように書き換え、sudo systemctl restart networking などで反映します。
auto eth0
iface eth0 inet static
address 192.168.1.50/24
gateway 192.168.1.1
DNS は resolvconf パッケージを入れている場合はこのファイルに dns-nameservers を書けますが、入れていない場合は /etc/resolv.conf で設定します。環境によって扱いが違うので、反映後に名前解決ができるかを確認してください。
設定後の確認
設定が終わったら、次の順に確認すると、どこで止まっているかが分かります。
ip -4 addr/ipconfigで、意図したアドレスとプレフィックス長になっているip route/route printで、デフォルトゲートウェイが1つだけ設定されている- ゲートウェイに ping が届く
- 外部の IP アドレス(
1.1.1.1など)に ping が届く - 名前解決ができる(Linux は
getent hosts example.com、Windows はResolve-DnsName example.com)
4までは通るのに5だけ失敗するなら DNS の設定漏れです。最後に一度再起動し、設定が残っているかを確かめます。再起動で消える場合は、一時的なコマンド(ip addr add など)で設定していたか、別の仕組みに上書きされています。
つまずきやすい点
- リモートから作業して接続が切れる:SSH 越しにアドレスを変えると、その時点で接続が切れます。サーバーではコンソールを用意するか、
netplan tryのような自動で戻る手段を使います。 - プレフィックス長の間違い:
/24を/16にするなど範囲を誤ると、同じ LAN の相手に届かなかったり、届くはずのない相手に直接送ろうとしたりします。 - ゲートウェイが複数ある:DHCP の設定が残ったまま手動の値を追加すると、デフォルト経路が2つできて通信が不安定になります。
- クラウドの仮想サーバー:多くのクラウドでは、OS の中でアドレスを固定するのではなく、管理画面で固定のパブリック IP を割り当てる仕組みです。OS 側の設定を変えると接続できなくなることがあるので、事業者の手順を優先してください。
設定ファイルを触る前のバックアップと、同じ構成の検証環境での事前確認は、どの OS でも基本です。
まとめ
- 設定前に現在の IP・プレフィックス長・ゲートウェイ・DNS を控え、DHCP の払い出し範囲外のアドレスを選ぶ
- ルーターの DHCP 予約が使えるなら、端末側の固定設定より管理が楽
- Windows は画面か
netsh、Linux は netplan・NetworkManager・ifupdown のうち実際に動いている仕組みで設定する - netplan では
gateway4ではなくroutesを使い、netplan tryで締め出しを防ぐ - 設定後はアドレス→経路→ゲートウェイ→外部→名前解決の順に確認し、再起動後も残るかを見る