🐧 Linux 総合学習プラットフォーム
Raspberry Pi セットアップ ・ 中級

ネットワーク設定とIPアドレスの確認

遠隔操作するには、ラズパイが今どのIPアドレスを持っているかを知る必要があります。最も手軽なのは hostname -I で、割り当てられているIPアドレスだけを表示します。詳しい状態(インターフェース名やUP/DOWN)まで見たいときは ip addr を使います。Wi-Fiやホスト名は raspi-config からも設定でき、ホスト名を決めておけば IPアドレスの代わりに ホスト名.local で接続できることが多いです。

Raspberry Pi をネットワーク越しに操作したい。だがその前に、知っておくべきことが一つある。その機器が今どのIPアドレスを持っているか、だ。

IPアドレスはネットワーク上での住所にあたる番号で、SSHやVNCで接続するときの宛先になる。

家庭やオフィスの多くの環境では、ルータがDHCPという仕組みで起動のたびに自動でアドレスを割り当てる。そのため、有線LANをつなぐかWi-Fiの設定を済ませるだけで、ネットワークには接続できる。

問題はその先だ。「割り当てられたアドレスが何番なのか」を本体側で確かめる方法である。

とくにディスプレイをつながないヘッドレス運用では、画面で確認できないぶん、コマンドで素早くアドレスを調べる手順を知っておくことが接続の前提になる。

ここでは現在のIPアドレスを確認するコマンドと、ネットワークの状態を詳しく見る方法、そして名前で接続を楽にする工夫を押さえていく。

⚡ いちばん速くアドレスを知るには、どう打つのか

最も手軽なのは hostname -I だ。これは余計な情報を省いて、その機器に割り当てられているIPアドレスだけを空白区切りで表示する。

hostname -I ……割り当てられたIPアドレスだけを表示する(例: 192.168.1.50)。大文字の -I であることに注意。

たとえば hostname -I と打つと 192.168.1.50 のように返り、有線と無線の両方が有効なら複数のアドレスが並ぶこともある。SSHでつなぐ宛先をひとつ知りたいだけ、という場面ではこれが一番速くて確実だ。

hostname -I大文字の I(アイ)192.168.1.50 ← 使えるhostname -i小文字の i は別の動作127.0.1.1 ← 役に立たないアドレスだけ欲しいときは、必ず大文字の -I を使う
つまずき大文字の -I(アイ)に注意。小文字の hostname -i は別動作で、127.0.1.1 のような自分自身の値しか出ないことがある。

ここで注意したいのが、大文字の -I(アイ)であることだ。小文字の hostname -i は名前解決の結果を返す別の動作で、環境によっては 127.0.1.1 のような自分自身を指す値しか出ず、役に立たないことがある。

アドレスだけをぱっと知りたいときは hostname -I、と覚えておこう。

🔎 回線が生きているかまで、どう見抜くのか

インターフェース名や、その回線が今つながっているか(UP/DOWN)といった詳しい状態まで見たいときは ip addr を使う(ip a と短く書ける)。

ip addr(ip a)……lo・eth0・wlan0 ごとに、状態とアドレスを一覧表示する。

実行すると、ループバックの lo、有線LANの eth0、無線LANの wlan0 といった各インターフェースごとに、状態とアドレスが一覧表示される。

lo は自分自身を指すループバック(127.0.0.1)で常に表示され、外部との通信には使わない。

eth0 や wlan0 の行にある inet の後ろの値(例: inet 192.168.1.50/24)が、そのインターフェースのIPv4アドレスだ。末尾の /24 はサブネットマスク(アドレスのうちネットワークを表す部分が24ビットあること、255.255.255.0 と同じ意味)を表す。

💡
ポイント行頭付近の state UP なら回線が有効、state DOWN ならつながっていない。配線かソフトかの切り分けに効く。

行頭付近に state UP とあれば回線が有効、state DOWN ならつながっていない。

ここに切り分けの勘どころがある。ケーブルを挿したのに通信できないとき、ip addr で eth0 が DOWN のままになっていないかを見れば、配線とソフト設定のどちらに原因がありそうか分けられる。

インターフェース名の eth0 は有線LANの0番目のポート、wlan0 は無線の0番目を表す名前だ。

なお、古い教材でおなじみの ifconfig は新しいRaspberry Pi OSには標準で入っていないことがあり、その場合はこの ip addr が代わりになる。

🏷 名前で接続を楽にするには、どこをいじるのか

Wi-Fiの接続やホスト名の変更は raspi-config からも行える。

sudo raspi-config を開き、「5 Localisation Options」でWi-Fiを使う国を設定したうえで、システム設定からSSIDとパスワードを入れればWi-Fiにつながる。ホスト名は「1 System Options」の Hostname から変更できる。

🔗
たとえホスト名を決めるのは、機器に「あだ名」を付けるようなもの。番号でなく名前で呼べるようになる。

ここでホスト名を決めておく利点は大きい。同じLAN内なら ホスト名.local という形でIPアドレスの代わりに名前で接続できることが多いからだ。

ssh pi@raspberrypi.local ……ホスト名を raspberrypi にしておけば、アドレスを調べ直さず名前で接続できる(mDNS)。

たとえばホスト名を raspberrypi にしておけば ssh pi@raspberrypi.local でつながり、毎回アドレスを調べ直す手間が省ける。これは前述のmDNSという名前解決の仕組みによるもので、ヘッドレス運用と相性が良い工夫だ。

複数台を運用するなら、pi-sensor01・pi-camera のように役割が分かるホスト名を付けておくとよい。どの機器に入っているかを名前だけで区別でき、取り違えを防げる。

ところで、新しいRaspberry Pi OS(Bookworm 以降)ではネットワーク管理の仕組みが NetworkManager に変わっている。設定をコマンドで行う場合は対話メニューの nmtui や、スクリプト向けの nmcli を使う。

nmcli device show ……今つながっているWi-Fiやアドレスの状況を確認できる。固定IP化や接続切り替えもこれで行う。

たとえば今つながっているWi-Fiやアドレスの状況は nmcli device show で確認でき、固定IPにする・別のWi-Fiに切り替えるといった操作もこれらで行える。

古いOSで使われていた設定ファイル方式(dhcpcd など)とは作法が異なるため、ネット上の古い手順をそのまま真似ると食い違うことがある。

だが慌てる必要はない。画面の見た目やコマンドが変わっても「IPアドレス・サブネットマスク・ゲートウェイ・DNS」という設定すべき4項目の意味は変わらないからだ。この4つが何を表すかを押さえておけば、どの方式でも落ち着いて設定できる。

⚠ つながらない、と感じたら最初に何を打つか

つまずきやすい点を挙げる。

まず hostname の -I を小文字 -i と取り違えて、自分自身を指す値しか出ずに「アドレスが分からない」と悩むパターンだ。アドレスだけ欲しいときは大文字の -I を使う。

次に、DHCP環境ではIPアドレスが起動のたびに変わりうる点である。昨日つながった番号が今日も同じとは限らないので、アドレス直打ちで運用していると突然つながらなくなる。

コツアドレスを安定させるなら、ホスト名.local で名前接続にするか、ルータのDHCP予約や本体の固定IPにする。

これを避けるには、ホスト名.local で名前接続にするか、ルータ側でそのRaspberry Piに常に同じアドレスを配る設定(DHCP予約)にするか、本体側を固定IPにするのが定石だ。常時動かすサーバやセンサー端末では、アドレスが動かないこの安定性が効いてくる。

日々の作業では「つながらない」と感じたら、まず本体で hostname -I と ip addr を打つ。そもそもアドレスを持っているか、回線がUPかを確かめる。この一手が、ネットワーク調査のいちばん確実な出発点になる。

この項目に出てくる用語

ヘッドレス運用へっどれすうんよう
モニターやキーボードをつながず遠隔から使う運用。

関連コマンド

hostnameraspi-config

▶ 学習アプリでこの続きを学ぶ・演習する