自宅のデバイスに固定IPを割り振りたいと思ったことはありませんか?
自分でサーバーを立てたりスマートホーム機器を使っていると、ふとしたタイミングで「またIPアドレス変わってる…」なんてことが起こりがちです。大抵の場合、自宅のルーターはDHCP機能で自動的にIPアドレスを割り振ってくれるので、機器を繋ぐだけでネットワークに参加できて便利な反面、リース期間が切れるとアドレスが変わってしまうのが悩みどころ。
これだとせっかく構築したアプリケーションにうまくアクセスできなかったり、SSHでの操作がしづらくなるなど、地味な不便さが積み重なってしまいます…。
そこで今回は、ローカルネットワーク内で固定IPを設定する方法を自分の備忘録も兼ねてまとめてみました。ルーター側で固定する方法とデバイス側での設定、どちらのパターンも紹介しているので、「そろそろIPを固定して快適にサーバー運用したい…!」という方はぜひ参考にしてみてください。
DHCP側で固定する方法
まず一つ目がルーター側で固定する方法です。ここでは自宅で使用しているRTX830の場合の方法を紹介します。コマンド操作可能なルーターであれば同じようなコマンドが提供されているはずなので、探してみてください。
また、コマンドが使用できないルーターでも、例えばNECのAtermだとDHCP固定割当設定という設定項目があったりします。探してみてください。設定項目にも存在しない場合はDHCPでの固定は難しいので、デバイス側での固定を試すと良いかと思います。
ここからRTX830の場合の設定方法を紹介していきます。
まず以下のコマンドを使用し、192.168.100.2-192.168.100.51/24の範囲は固定IP専用にします。
dhcp scope lease type 1 bind-only
dhcp scope 1 192.168.100.2-192.168.100.51/24
dhcp scope 2 192.168.100.102-192.168.100.151/24
参考: https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/dhcp/dhcp_scope_lease_type.html
参考: https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/dhcp/dhcp_scope.html
次にサーバーPCのMACアドレス、もしくはクライアントIDを確認します。自分の場合はshow dhcp statusコマンドで対象ホストのクライアントIDを確認しました。確認出来たら最後にDHCPに対して固定IPを割り振る対象としてサーバーPCを登録します。clientIdが無効化されているルーターではもう少し異なるコマンドになるかもしれません。
dhcp scope bind 1 192.168.100.2 ff aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
参考: https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/dhcp/dhcp_scope_bind.html
デバイス側で固定する方法
次にデバイス側の設定でIPアドレスを固定する方法です。
Ubuntu Serverの場合はそのままNetPlanの設定のみで設定可能です。NetPlanがないディストリビューションでもあとからインストール可能。
まず/etc/netplan/99-static-address.yamlを作成(ファイル名は数字と拡張子以外任意)します。管理者権限が必要かもしれないので、怒られたらコマンドにsudoをつけるかかrootユーザーで実行してください。
ここで数値は以下のように設定します。他は固定で良いです。
- eth0
- ネットワークのインターフェース名
- ifconfigなどのコマンドで確認可能
- dhcp4, dhcp6
- 割り振られたくないので無効化する
- addresses
- デバイスが要求するアドレス
- ルーターのサブネット内で設定すること
- routes.via
- ルーターのアドレス
- nameservers
- DNSサーバーのアドレス
- 基本的にルーターのアドレスで良いはず
- 8.8.8.8, 8.8.4.4などを明示的に指定することも可能
network:
version: 2
renderer: networkd
ethernets:
dhcp4: false
eth0:
addresses: [192.168.100.102/24]
routes:
- to: default
via: 192.168.100.1
nameservers:
addresses: [192.168.100.1]
設定出来たら設定をapplyします。パーミッション周りで問題が出たらchmodで対象ファイルのアクセス権限を修正してください。
sudo netplan apply
正しく設定出来ていて、指定したアドレスが他デバイスにリースされていなければ、指定した通り割り振られるはずです。もしだめだったら、デバイス、ルーターの再起動なども試してみてください。
ここまでがLinuxで設定する場合です。Windowsやスマホとかで固定する場合は手元で試してないので割愛しますが、ぱっと見つかった資料だけ置いておきます。
Windows11: https://www.aterm.jp/support/qa/qa_external/00244/win11.html
Mac: https://www.aterm.jp/support/qa/qa_external/00244/mac.html
iOS: https://www.aterm.jp/support/qa/qa_external/00244/ios.html
Android: https://aterm.jp/support/qa/qa_external/00244/android.html
最後に
固定IPをきちんと設定しておくだけで、サーバーにアクセスするたびにIPアドレスを確認する必要がなくなり、運用がだいぶ楽になります。
サーバーをちょこちょこ立てて遊んでいる人にとっては、「あれ、またIP変わってる…」という小さなストレスが地味に積もるんですよね。それが無くなるだけでも気分がいいものです。
もちろん、家庭用ルーターやデバイスによっては設定が少し面倒に感じるかもしれません。でも、ネットワークを自分でコントロールできるようになると、ちょっとした達成感もありますし、「自分のネットワークは自分で守る!」みたいな自信にも繋がります。
というわけで、この記事が誰かの「うちも固定IPにしてみようかな」のきっかけになれば嬉しいです。