RaspberryPiに固定IPアドレスを割当てる方法

シェアする

Pocket

1.pi zero WH が ssh 接続できず

以前の記事にも載せましたが、また、RaspberryPi ZERO WH が、wifi に接続できなくなりました。

多分、IPアドレスが、60爺の家のグループに属さなくなってしまったことが原因として考えられます。

そこで、さっそく、IPアドレスの確認をしてみました。

pi@raspberrypi:~ $ ifconfig
 lo: flags=73  mtu 65536
         inet 127.0.0.1  netmask 255.0.0.0
         inet6 ::1  prefixlen 128  scopeid 0x10
         loop  txqueuelen 1000  (ローカルループバック)
         RX packets 23  bytes 8993 (8.7 KiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 23  bytes 8993 (8.7 KiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
wlan0: flags=4163  mtu 1500
         inet 169.254.17.54  netmask 255.255.0.0  broadcast 169.254.255.255
         inet6 240d:1a:1ef:7d00:352:e707:bc6f:d17f  prefixlen 64  scopeid 0x0
         inet6 fe80::1a61:35bb:64eb:347e  prefixlen 64  scopeid 0x20

         ether b8:27:eb:d4:cb:98  txqueuelen 1000  (イーサネット)
         RX packets 866706  bytes 47512648 (45.3 MiB)
         RX errors 0  dropped 41  overruns 0  frame 0
         TX packets 39800  bytes 10777653 (10.2 MiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wifi ですので、wlan0 の方です。ご覧になってわかるとおり、169.254.17.54 となっています。

本来であれば、192.168.XXX.XXX となるべきところが、おかしなIPアドレスになっています。

2.固定IPに変更

前回もそうだったのですが、何回か reboot した段階で wifi に復帰したんですが、とても面倒です。

そこで、IPアドレスを動的IPアドレスから、固定IPアドレスに変更することにしました。

RaspberryPi のIPアドレスを固定IPアドレスにするには、以下のファイルに設定すれば終了です。

/etc/dhcpcd.conf

設定内容は、以下の4行です。

interface wlan0
static ip_address=192.168.XXX.XXXX/24
static routers=192.168.XXX.1
static domain_name_servers=192.168.XXX.110

  • 1行目で、固定IPの指定を表わします。今回は、wifi なので wlan0 と設定します。もし、有線LANで行うなら、この部分を eth0 と指定します。
  • 2行目で、IPアドレスとサブネットマスク(/24は必須)を指定します。
  • 3行目で、デフォルトゲートウェイ即ちルータのIPアドレスを指定します。普通は最後が1です。皆さんの環境に合わせてください。
  • 4行目は、DNSサーバです。60爺は、別途、DNSサーバを設けていますので、そのIPアドレスを指定しました。何もやっていない場合は、ルータのIPアドレスと同じです。

3.IPアドレスの確認

ここまで来たら、一番簡単な方法は reboot です。

sudo reboot

上記コマンドでラズパイを立ち上げなおします。
さあ、IPアドレスを見てみましょう。

pi@raspberrypi:~ $ ifconfig
lo: flags=73  mtu 65536
         inet 127.0.0.1  netmask 255.0.0.0
         inet6 ::1  prefixlen 128  scopeid 0x10
         loop  txqueuelen 1000  (ローカルループバック)
         RX packets 2  bytes 190 (190.0 B)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 2  bytes 190 (190.0 B)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
wlan0: flags=4163  mtu 1500
         inet 192.168.XXX.XXX  netmask 255.255.255.0  broadcast 192.168.XXX.255
         inet6 240d:1a:1ef:7d00:352:e707:bc6f:d17f  prefixlen 64  scopeid 0x0
         inet6 fe80::1a61:35bb:64eb:347e  prefixlen 64  scopeid 0x20
         ether b8:27:eb:d4:cb:98  txqueuelen 1000  (イーサネット)
         RX packets 496478  bytes 25050366 (23.8 MiB)
         RX errors 0  dropped 31  overruns 0  frame 0
         TX packets 14244  bytes 1949301 (1.8 MiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0 の2行目にある inet にある数値が指定した値になっていれば成功です。
今回は問題なく設定できました。

ちなみに、現在のOSは以下の通りです。

pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.11 (stretch)
Release:        9.11
Codename:       stretch
スポンサーリンク

シェアする

フォローする