ubuntuOSのRaspberry piでIpを固定するには?
ipアドレスの固定にかなり手間取ってしまったので、記録しておきます。
あっているかどうか怪しいので、他のページや参考文献も参考にしてみてください。
この記事が原因のトラブルに関して力になることはできても、責任はとれないので悪しからず。
環境
computer : Raspberry pi4 4GB
os : ubuntu21.10
参考文献
↑公式ドキュメント。
↑公式ドキュメントの和訳
この二つをそのまま見てしまったほうが、分かりやすいかもしれない。
設定方法
ラズベリーパイのネットワーク設定を変更するためには/etc/netplan/50-cloud-init.yamlを編集します。
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
enp3s0:
dhcp4: true
dhcp6: true
addresses:
- 固定ip
optional: true
wifis:
wlan0:
dhcp4: false
dhcp6: true
addresses:
- 固定ip
optional: true
access-points:
"SSID":
password: "パスワード"
nameservers:
search: []
addresses: [DNSサーバーip]
routes:
- to: default
via: ルーターip
version: 2
解説
部分ごとに解説していきます。
ルーター、DNSサーバーのipアドレス(後述)の調べ方は、ご自身でgoogle等で検索してみてください。
access-points:の部分が該当します。
SSIDにWi-FiのSSIDを、パスワードにWi-Fiのパスワードを指定してください。
dhcp: falseとすることでルーターから自動でipアドレスを割り振る「dhcp」機能をオフにすることができます。
そうしたら、addresses:の後の固定ipに設定したいipアドレスを指定してください。
指定するときには、000.000.000.xxx/24のようにサブネットマスクを指定する必要があります。
000・・・の部分がネットワークを示し、xxxの数値で機器を特定します。ipアドレスは8byteの二進数で構成されていて、それを1byteごとに「.」で区切って表記します。1byteで0~255を表せるので、「.」で区切られた区間の中は最大で三桁の数字になるわけです。/24は前から24bit、つまり、3byte分がネットワークを示すよということを示す「サブネットマスク」になります。そこより後ろは、機器を特定する部分になるので、基本的には好きに指定することができます。しかし、他の機器が使っていたりするとネットワークにうまく接続できないので、ipアドレスを固定する前の値をそのまま使用するのも手です。
DNSサーバーとは、webブラウザなどからgoogleなどのサーバーに接続する際、「google.co.jp」のようなURLをipアドレスへと変換してくれるサーバーです。
nameservers:の部分が該当します。
DNSサーバーipにDNSサーバーのipアドレスを指定してください。
ネットにつなげるときの通り道を示します。
routes:の部分が該当します。
ルーターipにルーターのipアドレスを指定してください。
設定の適用
一通り設定できたら、コマンドプロンプトでsudo netplan applyとコマンドを打って設定を適用します。
自分の場合、Cannot find unique matching interface for eth0: {'driver': 'bcmgenet smsc95xx lan78xx'}と表示されましたが、無視して問題なさそうです。
トラブルシューティング
ipアドレスを固定しようとしたらネットにつながらなくなった!というときは、焦らずに原因を究明しましょう。
pingコマンド
ping 相手のip/URL
例 : ping 8.8.8.8
とコマンドプロンプトに打ち込むことで、相手と接続できるか確かめることができます。
放っておくと永遠とpingを打ち続けるので、接続できたようであればctrl+cで止めます。
補足
pingは接続を確認するだけでなく、通信の速度を調べたり繰り返し打つことで相手と自分との接続の確実性を検証したりすることができます。
- 自分自身にping
Raspberry piに設定したipアドレスにpingを打ちます。
これがうまくいかないときは、ip固定がうまくいっていない可能性が高いです。 - ルーターにping
これがうまくいかないときは、ルーターのアドレスを間違えていたり、Wi-Fiの設定をミスしていたりしていないか確かめてください。 - 8.8.8.8にping
これがうまくいかないときは、ルーターがインターネットに正しく接続されているか確かめてみてください。 - 何かしらのURLにping
例えば、google.co.jpに対してpingを打ってみてください。
これがうまくいかないときには、DNSサーバーのipアドレスを間違えていないか確かめてみてください。
以上の4つで、どこに問題があるのかを確かめてみてください。
トラブルが起きた時こそ、焦らず落ち着いて対応しましょう。
あとがき
分からないこと、ご指摘等ありましたら、コメントしてみてください。対応できるかどうかわかりませんが、、、
楽しいプログラミングも準備段階でつまづくと辛いので、抱え込まずに誰かに質問してみてください。