作ってみた!ラズパイガジェット達はこちら

Raspbian Stretchで固定IPにする方法

設定(setting)
スポンサーリンク

当ブログの記事では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は無効になっています。セキュリティ対策のためです。SSHを使用する場合は、raspi-configで有効化する必要があります。また、パ...(続きを読む)

 

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になっています。気をつけてください。

 

以下を記述

interface eth0
static ip_address=192.168.0.8/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

これで完了です。

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

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

ご意見・ご感想
お気軽にメッセージください!

最後まで読んでいただきまして、ありがとうございます。
コメント欄以外にも、よろしければお気軽にメッセージください。

この記事についてのご感想などはもちろん、間違いのご指摘、またはRaspberry Piの世間話など何でもOKです!

この記事を書いた人
ラズパイダ

学べる楽しむ便利になる。小さいくせにヤケにパワフル。そんなRaspberry Pi をまだ知らない人に伝えたい。様々な場所で利用されているRaspberry Pi を知って「あっ、これもラズパイだっ!」だからラズパイダ!

ラズパイダをフォローする
設定(setting)
この記事をシェアしたり自分用に保存してみる。
ラズパイダ

コメント