デシリットルの野望

何でも知りたい。そんな野望を抱いています。「ですます調」と「だである調」が混在しているのは仕様。

RaspberryPiのIPアドレスを固定する方法

『RPiに割り当てられているIPアドレスが前回と変わってる!リモートで操作できない!!ア”ァ”ァ”!!!』な状況を回避すべく、RPiへ固定のIPアドレスを割り当てる事にしました。

先に結論を

以下の2つの方法でIPアドレスが固定できました。簡単なのは1.の方ですが、使用しているブロードバンドルーターの機種によっては実現できないかもしれません。

  1. ルーター内臓のDHCPサーバの機能を使用する
  2. /etc/dhcpcd.confに設定を追記する

わたくしの環境

これまでどうやってIPアドレスを調べていたのか

直接RPiで$ ip aを実行するか、 もしくはブロードバンドルータの管理画面で、事前に確認しておいた物理アドレスを基に対応するIPアドレスを調べていた。

ダサいぜ!

さて、どうやってIPアドレスを固定しよう

その1 ブロードバンドルータDHCPサーバ)の機能を使う

私が使用しているルーターには、機器へ払い出すIPアドレスを固定する機能がある。管理画面はこんなかんじ。

f:id:torchlight1182:20201004210616p:plain:w300

【手動割当に変更】ボタンを押すことで、リクエストの度に同じIPアドレスが割当てられる様になるのです。 これはこれで便利だけど、Linuxを触る以上はなんか黒い画面でカタカタやって設定したい。

その2 設定ファイルの変更する

どの設定ファイルを編集するんだっけ・・・

古い記憶によると/etc/network/interfacesを編集するんだったような・・・

pi@raspberrypi:/etc/network $ cat interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

man dhcpcd.confしろ、と言われてしまった。 素直にマニュアルを見る前に、このconfファイルがどのパッケージ由来なのかを調べてみる。

dpkg -S dhcpcd.confによると、dhcpcd5というパッケージ由来の設定ファイルらしい。 パッケージ名から大体想像はつくけども、勉強の為にdpkg -s dhcpcd5を併せて実行。 以下実行結果から抜粋。

Description: DHCPv4, IPv6RA and DHCPv6 client with IPv4LL support

想像の通り、DHCPのクライアントでした。

dhcpcd.confを編集する

これで、編集するファイルは分かった。ここで、頭を空っぽにしてman dhcpcd.confする。 すると、丁度良さそうなサンプルが見つかった。やっぱり頼りになるぜman

interface eth0
noipv6rs
static ip_address=192.168.0.10/24
static broadcast_address=192.168.0.63
static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
fd51:42f8:caae:d92e::1

これを自分の環境に置き換えてみると、こんな感じ。ブロードキャストアドレスとIPv6の設定はきっと要らないよね。

ちなみにウチのルーターでは、192.168.11.2から64台分のIPアドレスを貸し出している様なので、192.168.11.200にでもしとけば問題は発生しないハズ。

interface eth0
static ip_address=192.168.1.200/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1

編集内容をしっかり確認して、sudo rebootを実行。緊張の一瞬。 そして少し時間を空けて、リモート接続に成功!これで一安心。