Raspbian stretch でIPアドレスを固定する方法
RaspbianがStretch にバージョンアップしてIPアドレスを固定する方法が分かりにくくなりました。
ご存知の方も多いとは思いますが、実は、以前からIPアドレスを固定するのに /etc/network/interfaces を編集しないで /etc/dhcpcd.conf を編集して下さいとのメッセージが書いてありました。
この画面はStretchの/etc/network/interfaces です。
とりあえず、/etc/dhcpcd.conf を開いてみると下記のように書いてあります。
# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8
# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
#static ip_address=192.168.1.23/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1
# fallback to static profile on eth0
#interface eth0
#fallback static_eth0
青文字の部分のコメント化をといて(#を削除)指定したいIPアドレスにすればOKと思いますよね。 でも、それだけじゃダメなんです。
理由は eth0 が無いから。
なんと、Raspbian Stretchでは、eth0の代わりにmacアドレスを使った固有の番号が割り当てられています。
ifconfigで調べられます。 上の図で enx****** と書いてあるやつ。
ということで、 /etc/dhcpcd.conf を編集して
interface enx*******(固有)
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
という具合に設定してあげればOKです。 ピンク文字はご自身の環境に合わせてください。
でも、私は起動を高速にするために
DHCPクライアント(dhcpcd)を止めたいのですよ。
当然 dhcpcdを止めると /etc/dhcpcd.conf に書かれたものも読み込まれません。 そうしてIPアドレスは無くなりDHCPクライアントもとまっているので、RaspberryPi がネットワークに繋がらなくなってしまいます。 こんな罠があって、最初、dhcpcdを止めるとなぜ繋がらなくなるのか分かりませんでした。
結局、/etc/network/interfaces を編集することになります。
auto lo
iface lo inet loopback
allow-hotplug enx*******(固有)
iface enx*******(固有) inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
とすることで解決です。
この方法が、はたして正しいのかどうかは不明ですけど、無事にDHCPクライアントを止めることが出来ました。 dhcpcdサービスをを止めるには、
sudo systemctl disable dhcpcd
というコマンドを打てばOKです。
さてさて、調べているなかで、macアドレスを利用した固有番号をやめて従来のeth0にするという方法もあるようです。
上記の方法だと、SDカードを別のRaspberryPiに挿したときにネットワークに繋がらないので、eth0 の方が使勝手が良いでしょうね。
/boot/cmdline.txt の末尾に
net.ifnames=0
を追記することで eth0 に戻せます。 これでenx******と書かなければいけない所をeth0にできます。
万事解決(?)ということで、皆様のお役に立てれば幸いです。
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« オープンソースカンファレンス初参加レポート | トップページ | アレキサンダー電流帰還アンプ × MUSES02 »
「Raspberry Pi」カテゴリの記事
- ラズパイをUSB-DACとしてスマホに認識させる方法 gadget mode(USB Audio Class 2.0)(2020.10.16)
- Raspberry Pi OSがkernel 5.x系に移行 ドライバモジュールのコンパイル方法も変更に(2020.10.05)
- ラズパイをUSB-DACとしてSoundgenic-NAS、Linuxに認識させる方法 gadget mode(USB Audio Class 2.0)(2020.09.24)
- ラズパイをUSB-DACとしてWindows10に認識させる方法 gadget mode(OTG Mode)(2020.09.22)
- 最新Volumio2でPi4の温度上昇をみてみる。(2020.03.19)
コメント
« オープンソースカンファレンス初参加レポート | トップページ | アレキサンダー電流帰還アンプ × MUSES02 »
たかじんさん、貴重な情報ありがとうございます。
デバイス名の表記方法が変わっているのですね。着脱式のアダプタの利用を想定して、一意性を維持するためのものでしょうか。fstabの記述がuuidに変わってきているのと同じようなものかな?と思います。
ifconfigで確認できますが、blkidのようなツールがあればいいですね。
同じStretchといっても、新規インストールの場合と、旧バージョンからのアップデートでは、だいぶ様子が違うことが分かり勉強になりました。
投稿: koji | 2017年9月17日 (日) 12時59分
kojiさん
その通りです。 どこかに書いてありました。eth0、eth1という記述だとデバイスが入れ替わってしまうので、固定したいというのが理由のようです。
メジャーアップデート時は、旧バージョンからのアップデートではなく新規インストールの方が不具合が少ないかもしれませんね。 他に不具合など隠れている可能性もあります。
投稿: たかじん | 2017年9月18日 (月) 08時58分