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」カテゴリの記事
- 来年からRapberryPiの供給が改善されるらしい。(2022.12.17)
- ラズパイオーディオお手軽インストーラー[MUTE](2022.07.08)
- 2022年版のRaspberry Pi OSではユーザー、パスワード設定が必須に(2022.05.05)
- あのオーディオデザインさんがラズパイオーディオを発売(2022.04.18)
- Volumio/MoodAudioに秋月電子のI2CタイプOLEDを接続して曲名などを表示するPython3版(2022.03.26)
コメント
« オープンソースカンファレンス初参加レポート | トップページ | アレキサンダー電流帰還アンプ × MUSES02 »
たかじんさん、貴重な情報ありがとうございます。
デバイス名の表記方法が変わっているのですね。着脱式のアダプタの利用を想定して、一意性を維持するためのものでしょうか。fstabの記述がuuidに変わってきているのと同じようなものかな?と思います。
ifconfigで確認できますが、blkidのようなツールがあればいいですね。
同じStretchといっても、新規インストールの場合と、旧バージョンからのアップデートでは、だいぶ様子が違うことが分かり勉強になりました。
投稿: koji | 2017年9月17日 (日) 12時59分
kojiさん
その通りです。 どこかに書いてありました。eth0、eth1という記述だとデバイスが入れ替わってしまうので、固定したいというのが理由のようです。
メジャーアップデート時は、旧バージョンからのアップデートではなく新規インストールの方が不具合が少ないかもしれませんね。 他に不具合など隠れている可能性もあります。
投稿: たかじん | 2017年9月18日 (月) 08時58分