Raspbian Stretchで固定IPにする方法

Raspberry Pi
この記事は約8分で読めます。

当ブログの記事ではWi-Fiの設定がとても人気があります。結構、皆さん苦戦しているようですね。これはRaspbianでもLibreELECでも、Retropieにしろ、需要があるのかと思います。

Raspbian のWi-Fi設定(Raspberry Pi 初期設定)
Raspberry Pi にOSであるRaspbianをインストールした後、Wi-Fiに繋げるセットアップ方法をご紹介...

今回はSSHでアクセスし易いように、有線LAN、無線LAN(Wi-Fi)での接続を、Raspbianで固定IPにする方法をご紹介します。分かりやすいようにご紹介しますね。

もしも「分かりにくい!」「間違ってる?!」などご質問やご指摘はフォーラムにお願いいたします。もちろん、コメントでもOKです!

フォーラムでは他の人にも通知が行きますので、もっと詳しい人から返信いただけて解決が早いかも知れません。

なお、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つの方法があります。どれでも構いません。

  1. SSHファイルで起動時に有効にする
  2. SSHのONをGUIで行う
  3. SSHのONをCUIのraspi-setupで行う

それぞれ説明します。

SSHファイルで起動時に有効にする

実はRaspbianとRaspberry Pi には、初回起動時にSSHファイルを用意することで、SSHを有効にして起動させることが可能です。

こちらにまとめてあります。

RaspbianをインストールするときSSHを有効化する方法
Raspberry Pi はデフォルト(標準)でSSH機能は無効になっています。セキュリティ対策のためです。S...

SSHファイルが初回起動時にboot直下に存在した場合、SSHを有効にして、その作成した空のSHHファイルを削除するという仕組みです。

Windowsの場合

touch Volume/boot/ssh

Windowsの場合

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)
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 ←こちらもルーターの番号

これで完了です。

補足メモ:
一般的にプライベートのアドレスというのは、192.168〜から始めるルーターが多いです。絶対ではなく慣例でそうなっている部分があり、説明が難しいのですけど、およそ購入してきたルーターは、「192.168.0.1」や「192.168.1.1」が多いかと思います。
ラズパイダ内ではそういう意味で192.168.〜で記載しています。

 

よろしけばこちらもお読みください。
IPアドレスとサブネットマスクを理解しよう!

ホスト名で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にすることや、ホスト名を使うこと、その都度の使用用途によるため、ホスト名の方が簡単ですけど、使い分けてください。

個人的には自宅内での使用ならホスト名だけでも全く不都合はありませんね。

試してみてください。

ラズパイダの新着記事をメールで購読

メールアドレスを記入して購読すれば、更新をメールで受信できます。

472人の購読者に加わりましょう

   

※この記事は2018年9月11日に書かれたもので、内容が古い可能性がありますのでご注意ください。

タイトルとURLをコピーしました