logo header
logo header
logo header
logo header
  • 2017.04.14
  • 技術ブログ電子工作

Raspberry PiのIPアドレスをログインせずに調べるやり方

基本的にINDETAILは札幌本社で開発を行ないますが、案件によっては東京にスポットで出張することもあります。
そんなわけで、現在東京出張中のtacckです。
東京出張ついでに、桜の花見を満喫しました。

最近はラズパイの記事を中心に書いていますが、ラズパイで作業するときは自分のPCから ssh でラズパイにログインすることが多いです。
たまにGUIで操作したい時は、モニタとHDMIで接続し、キーボード・マウスをUSBで接続して、ログインして利用しています。
ところが、現在は出張の身。ラズパイを持ってきたは良いけど、普段と違うネットワーク環境、おまけにキーボードもマウスも無い。。。
これではIPアドレスもわからずログインもできない、、、そして、記事も書けない!

ということで、今回は、出張のお供に持ってきた Raspberry Pi 3 Model B のIPアドレスをログインせずに調べる方法と、そこからWiFi経由で ssh 接続できる方法を紹介してみたいと思います。

普段はどうやっているか

普段ですと、

  • Raspberry PiをHDMIでモニタに接続 (マウスとPCも接続)
  • GUIでログイン後に自宅のWiFiアクセスポイントに接続していることをモニタで確認
  • そこからIPアドレスを調べてそのIPアドレスへ ssh でPCからログイン

というふうにして作業をできるようにしています。
すごく簡単です。

WiFi経由で ssh 接続をやってみる

まず有線LAN経由で接続

WiFiのアクセスポイントは、出張用に持ってきたモバイルルータです。
有線LANの口がついたクレードルもあり、これを経由して外部に接続しています。
モバイルルータは、 "APモード" という状態です。

普段と違うアクセスポイントになるので、Raspberry Piにてアクセスポイントの登録が必要です。
しかし、マウスもキーボードも無いので、そもそも設定のやりようが無い、、、という現実に打ちひしがれました。

しかし、Raspberry Piには有線LANの口があります。
そして、モバイルルータもクレードルに有線LANの口があります。

そう、「ここをイーサネットケーブルで繋げば良いじゃないか!」と気づきました。
モバイルルータを、 "ルータモード" に切り替えて、イーサネットケーブルでクレードルとRaspberry Piをつなぎます。
こうすれば、Raspberry Pi側はDHCPによりIPアドレスを取得でき、私のPCと接続できるようになるはずです。

しかし、そのIPアドレスが何か、普段と違うやり方で調べないといけません。

細かい話は省きますが、同じネットワーク内の機器が通信をする際に、MACアドレスというものを利用します。
このMACアドレスとIPアドレスの組み合わせを機器同士が互いに教えあうことで、通信ができるようになります。
つまり、これをPCからRaspberry Piに聞けば良いのです。

とはいえそのRaspberry Piを特定できないから聞きようが無い、、、となるところなのですが、これはわからなくても大丈夫です。
特定の機器だけではなく、ネットワーク内の機器全部に尋ねる方法があるのです。

まずは、現在PCが知っている"MACアドレスとIPアドレスの組み合わせ"を表示します。
(今回は192.168.100.0/24のネットワークに繋がっている状態とします。)

細かい話は省きますが、ここでは 192.168.100.1 192.168.100.102 192.168.100.103 がネットワーク内の有効なIPアドレスです。
また、PC自体は 192.168.100.103 ということも調べることができます。
(192.168.100.1はモバイルルータで、192.168.100.102はスマホでした。)

では、他にネットワークに繋がっている機器が無いか、ネットワーク内の機器に尋ねてみたいと思います。

ここで使った 192.168.100.255 というのは "ブロードキャストアドレス" と言います。
このアドレスで "ネットワーク内の機器すべて" を指すことができる、と考えてください。

しかし、ここでのpingの応答は自分からしか返ってきてないですね。

きちんとRaspberry Piが探せたか、再び"MACアドレスとIPアドレスの組み合わせ"を表示します。

192.168.100.106 が増えていますね。これが、Raspberry Piのようです。
ここに ssh で接続してみましょう。
ユーザー名・パスワードは、Raspbianのデフォルト(pi/raspberry)を使用します。

無事に繋がりました!
これで、「まったく操作できない」状態から「有線LAN経由で操作できる」状態になりました。

次にWiFi経由で操作

Raspberry Piが操作できるようになったので、早速WiFi経由で操作できるようにします。
これは、モバイルルータのSSIDとパスワードを正しく設定すれば良いです。

/etc/wpa_supplicant/wpa_supplicant.conf にアクセスポイント情報が記載されているので、これを修正します。

上記のssidにSSID名、pskにパスワード、をそれぞれ正しく入力します。
その後、WiFiのインタフェースの再起動を行ないます。

wlan0 がWiFiのインタフェース名となります。
上記のように 192.168.100.107 が割り当てられています!

では、WiFi経由でRaspberry Piに接続してみましょう。

無事に接続できました!
イーサネットケーブルを抜いても、きちんとRaspberry Piを操作できています。

モバイルルータを "APモード" に戻し、モバイルルータが外部と通信できる状態に戻しておきます。
これで、Raspberry Piから外部へも通信できるようになりました。

まとめ

これで、いつでもRaspberry Piを持ち出せるようになりました!
有線LANで繋げた状態の時にRaspberry PiのIPアドレスを調べる方法は、少々力技ではありますが、ネットワーク(主にTCP/IPとその実装周り)を知っていれば思いつくものです。
基礎的な知識ですが、きちんと身につけておくといざという時に役に立つものだと実感できました。

近いうちに秋葉原で何かセンサーを探してきて、次回の記事のネタとしたいと思います。

ともに世界をアップグレードできる、そんな日を夢見て。
Upgrade the World!