当ブログの記事ではWi-Fiの設定がとても人気があります。結構、皆さん苦戦しているようですね。これはRaspbianでもLibreELECでも、Retropieにしろ、需要があるのかと思います。
今回はSSHでアクセスし易いように、有線LAN、無線LAN(Wi-Fi)での接続を、Raspbianで固定IPにする方法をご紹介します。分かりやすいようにご紹介しますね。
なお、SSH経由でアクセスせず、Raspberry Pi 実機を直接操作する場合は、SSH関係を飛ばして、固定IPの設定まで飛んでください。
今回の環境
- Raspberry Pi は3B+
- Raspbian Stretch 2018−06
- 有線LANまたは無線LAN(Wi-Fi)
- 母艦PCはMacでターミナル接続(Windowsの人はPuttyをご利用ください)
SSHを有効にする
Raspbian側でSSHはONにしてください。Raspberry Pi 側でのONにしている場合や、ご自宅のネットワーク環境をご存じの場合は次に飛んでください。
SSHはセキュリティの関係で初期設定ではOFFになっています。
ネットワーク越しに遠隔操作するためには、操作したいRaspberry Pi のSSHが有効になっていなければなりません。RaspbianをGUIがないRaspbian Liteを利用しているのなら、操作したい実機をCUIで操作します。
3つの方法があります。どれでも構いません。
- SSHファイルで起動時に有効にする
- SSHのONをGUIで行う
- SSHのONをCUIのraspi-setupで行う
それぞれ説明します。
SSHファイルで起動時に有効にする
実はRaspbianとRaspberry Pi には、初回起動時にSSHファイルを用意することで、SSHを有効にして起動させることが可能です。
こちらにまとめてあります。
SSHファイルが初回起動時にboot直下に存在した場合、SSHを有効にして、その作成した空のSHHファイルを削除するという仕組みです。
touch Volume/boot/ssh
copy nul D:¥boot/ssh
Macならターミナルアプリケーション、Windowsならコマンドプロンプトで実行してください。
SSHのONをGUIで行う
Raspberry Pi デスクトップ環境でインストールしたならば、GUIかでメニューから操作できます。また、LibreELECのような統合型OSの場合はマウスなどでメニューから辿ってSSHを有効にします。
SSHのONをCUIで行う
主にRaspbian Liteの場合は実機のコマンドで設定します。
sudo raspi-config
SSHでアクセスするためにIPアドレスを確認する
SSHが有効になれば、別の母艦PCから操作可能です。
先ずは接続先のRaspberry Pi のIPアドレス(またはホスト名)が分からないと接続できません。
自宅のネットワーク環境を他のPC(母艦)から調べる方法
arpというコマンドを使います。MacでもWindowsでもOKです。
arp -a | grep b8
ただ、これはネットワーク通信している機器に限るのと、応答しない機器もあります。そうなるとPingコマンドですべてにPingを飛ばすことで解決します。しかし、for文を使ったコマンドも上手く動作しないこともある(文系オヤジだから上手くいかない)ためarp-scanというツールで解決させました。
また、ブロードキャストアドレスへPingを投げればOKという記述も見られます。しかし、私の環境では無駄でした。
ping 192.168.0.255
arp-scanというコマンドツールはMacOSXでは標準で入っていません。インストールしてみました。
arp-scanのインストール
ターミナルでHomebrewをインストールします。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install"
2分くらいかかるでしょうか? インストールできたら、今度はこのHome brewというパッケージシステムで、arp-scanをインストールします。(ややこしいですね)
brew install arp-scan
実行してみる。
sudo arp-scan --interface=en0 192.168.0.0/24
Interface: en0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.5 with 256 hosts (https://github.com/royhills/arp-scan)

このように分かりやすいですね!
b8:27:ebから始まるMACアドレスがRaspberry Pi です。これで次回から調べるのが楽になりました。
ネットワークに通信すればキャッシュに登録されるので、arp -aコマンドで検出されます。機器を取り外したり、何かの事情で表示されないのであれば、arp-scanのインストールをオススメします。
Raspberry Pi でIPアドレスを調べる
SSHでアクセスしたいRaspberry Pi のターミナル(LX Terminal)でifconfigコマンドを打つことでIPアドレスを確認できます。
ifconfig -a
今後はipコマンドに統一されるようです。
ip a
これでもOK!
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP8000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether b8:27:eb:12:79:14 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.9/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP8000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether b8:27:eb:47:2c:41 brd ff:ff:ff:ff:ff:ff
eth0の中のinetと書かれている部分がそのRaspberry Pi のIPアドレスです。
SSHでアクセス
ターミナルにてSSH接続(MacのターミナルまたはWindowsのPutty)します。
ssh pi@192.168.0.8
パスワードを訊かれたら初期は「raspberry」です。
もしもエラーが出たら?
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
そのIPアドレスは別のに使われていました。そのため一旦、そのIPアドレスで設定されていた認証ファイルを削除します。
ssh-keygen -R 192.168.0.8
これでもう一度SSHのコマンドでアクセス可能になります。
固定IPの記述
/etc/dhcpcd.confに記述
ちょっと昔は/etc/networks/interfacesに記述したのですけど、現在はdhcpcd.confに記述することになっています。ネットの古い記事はinterfacesになっています。気をつけてください。
sudo nano /etc/dhcpcd.conf
以下を参考にして記述します。
interface eth0
static ip_address=192.168.x.8/24 ←任意で決めた他と被らない番号
static routers=192.168.x.x ←ルーターの番号
static domain_name_servers=192.168.x.x ←こちらもルーターの番号
これで完了です。
ホスト名でSSH接続する!(かんたんです)
ホスト名で接続する方法があります。IPアドレスが分からない場合に便利です。仕組みとしては任意で決めたホスト名(決めない場合の名前はraspberrypi)をIPアドレスの代わりに使います。mDNSです。(※Windowsは今はどうだか知りません・・・)
ホスト名はraspi-setupで任意に決められます。LibreELECならメニューの中に設定する場所があります。
名称はハイフンくらいしか余分に使えないのと、あまり長いと面倒なので、シンプルにしています。
例えば、rpi-zerowや、rpi-musicsysとか、Libreelecです。
これを使うと、先程のSSHのアクセスのコマンドも以下のようになります。
ssh pi@rpi-musicsys.local
これならIPアドレスを固定していなくてもOK! IPアドレスを調べなくてもOK!
間違いやすいのは.localを付け忘れることくらい。
便利です。
ローカル環境の信頼できる機器という条件の下なら簡単ですよね。
固定IPにすることや、ホスト名を使うこと、その都度の使用用途によるため、ホスト名の方が簡単ですけど、使い分けてください。
個人的には自宅内での使用ならホスト名だけでも全く不都合はありませんね。
試してみてください。