Raspberry Pi 4でIPアドレス固定したら外部ネットワークにつながらなかった 解決策 備忘録


1.固定時の状況

先日、WebAPIを用いてアプリケーションや簡易サーバー的な事を行っていました、その際Raspberry Pi4のIPアドレスを固定化しなければならなかったのでRaspberry Pi 3 でIPアドレスを固定して、外部からSSH接続できるようにするを参考にIPアドレス固定化を行いました。
以下はIP固定時のソフトウェアのバージョンとハードウェアの詳細です。

pi@raspberrypi:~ $ cat /etc/debian_version
10.7
pi@raspberrypi:~ $ cat /proc/device-tree/model
Raspberry Pi 4 Model B Rev 1.2

Raspberry Pi 4 4GB
USB boot SSD 120GB
SD搭載なし

私はIPアドレス固定化に伴いdhcpcd.confを以下の様に変更しました。
個人情報とセキュリティに関して全文はお見せできませんが、重要な一部を下に記します。*コピペする場合には#とXに注意してください。

dhcpcd.conf
#追記部分のみ、前文は変更なし
interface eth0
static ip_address=192.168.X.XX/XX #固定したいIPアドレス
static routers=XXX.XXX.X.X #ルーターのIPです、詳しくはルーターの設定で確認してください
static domain_name_servers=XXX.XXX.X.X #大体routersと同じで動くはずです、これもルーターの設定で確認してください
static domain_search= #この状態でも動きましたので入力要らないとおもいます

2.問題発生

上記のようにdhcpcdを設定し直した後に再起動しました。
私はVNCを用いてRaspberry Pi上で作業を行っていますが繋がりませんでした
また起動時にWebAPIのアプリも同時に起動するように設定していましたがそちらも反応なし。しかし、SSHやローカル接続のVNCは繋がりました。つまり、
Raspberry Pi ---> ローカルネットワーク ---////問題発生? グローバルネットワーク
だと考えたわけです。

またその時にローカル上でもIPアドレスを確認できるのですがdhcpcdで指定したIPアドレスで取得はできていました
それもできないという人は下の補足を確認してください。

3.解決策

結果的に下記のコマンドで直すことができました。

sudo dhclient eth0

WiFiでIPを固定して同じように問題が発生した場合はsudo dhclient wlan0を実行してみてください。
実行すると下記のようになりました

pi@raspberrypi:~ $ sudo dhclient eth0
RTNETLINK answers: File exists
Too few arguments.
Too few arguments.

RTNETLINK answers: File existsは出ない場合もあります。
私以外にもこのような問題が発生している人が少しいましたがその解決策を明示しているサイトなどがあまりなかったです。この問題自体は前からLinux系のOSに見られるらしくLinux系を扱っているサイトなどで解決策を発見しました。

4.補足

IPアドレス固定化に関して少し補足があります。Linux系のOSを使っている人はIPアドレス固定などアプリケーションを操作する際によくターミナルを使用します。しかし普段Windows OSを使用する人はGUIに慣れていて、どうしてもGUIで操作したい場合があると思います。
またdebianにはGUIで操作できるアプリケーションも多く存在しています。そしてIPアドレス固定化も下記のGUIで操作できます。

このGUIで操作して固定できますが問題が発生する場合があります。
このアプリケーションでIPアドレス固定をした後ターミナルでdhcpcd.confを確認すると

dhcpcd.conf
#追記部分のみ、前文は変更なし
interface eth0
inform 192.168.X.XX/XX
static routers=XXX.XXX.X.X 
static domain_name_servers=XXX.XXX.X.X
static domain_search=

このようにstatic ip_address=informに代わっていました。私の環境下ではこのinformがあるとうまくIPを取得できませんでした。なのでそもそもローカル上でも繋がらない場合はこのように確認してみてはどうでしょう。(他のサイトではこのinformでも大丈夫というのもありました)

5.まとめ

結果的に問題は解決できましたが明確な原因はわかりません。なので今後もDHCP系は勉強しないとですね。こういうあまり大きな問題でもないが面倒くさい問題はOSのバージョンアップでよくおきますのでできれば原理を理解しておきたいものです。
ではたのしいRaspberry Pi工作ライフを!!
また何かあれば記事にするかこの記事に追記しますね!!!

参考資料

Raspberry Pi 3 でIPアドレスを固定して、外部からSSH接続できるようにする