IPアドレスがわからないラズパイにホスト名でSSH接続する簡単な方法(mDNS)
ラズベリーパイで作業する際にSSHを使って接続することがよくありますが、DHCPでIPアドレスが動的に割り当てられる環境で、IPアドレスがわからなくて接続できないことがあります。特にディスプレイが無い環境だと調べるのに一苦労です。
そんな時にmDNSという仕組みを使って、簡単にSSH接続する方法を紹介します。
想定する環境
- 小規模な自宅ネットワーク(DNSサーバーを立てていない/設定していない)
- ラズベリーパイのOS: Raspbian Jessie
- 固定IP、動的IP(DHCP利用)どちらでも大丈夫。
接続方法
前準備
ラズベリーパイのホスト名を事前に確認しておく必要があります。デフォルトはraspberrypi ですが、raspi-configなどで変更している人は注意してください。
ターミナルを起動して現れるプロンプトを見るとわかります。
pi@raspberrypi:~ $
このように表示されていたら、@から後の「raspberrypi」がホスト名です。
また、プロンプトに表示されていない場合はhostnameコマンドで確認します。
pi@raspberrypi:~ $ hostname
raspberrypi
ホスト名で接続する
接続元となるPCからターミナルで以下のように入力します。
ssh pi@raspberrypi.local
ssh {ユーザー名}@{ホスト名}.local となっています。
これでパスワードを入力して無事に接続されたら完了です!簡単(^o^)
複数台のラズパイを同じネットワークに接続する場合は名前を変えましょう
識別できるように名前を変更してください(ex. raspi-1、raspi-2 など)。1つしか繋がっていない場合は特に変更する必要はありません。
ホスト名の変更は、raspi-configコマンドを使って行います。
sudo raspi-config
「2 Hostname」を選択
ASCII文字のa〜z、0〜9、-(ハイフン)だけしか使えませんので注意してください。
ホスト名を設定します。その後、了解を選択して再起動すれば完了です。
マルチキャストDNS (mDNS) について
mDNSは、multicast Domain Name System の略で、自宅ネットワークなどネームサーバーが無いローカルネットワーク内で、ホスト名をIPアドレスに変換する(名前解決する)仕組みです。ユニキャストDNSサーバーがあっても協調して動くそうです。
macで使われているBonjourです。ホスト名.local でアクセスするアレです。
ラズベリーパイ(Raspbian jessie)では最初から使えると思うのですが、もしうまくいかない場合は以下の方法で確認してみてください。
avahi-daemon の確認
ラズベリーパイにログインして、ターミナルから以下のコマンドを実行します。avahi-daemonがenabledになっていればOKです。
$ systemctl list-unit-files --type=service | grep avahi
avahi-daemon.service enabled
もし、インストールされていなかったり、disableになっている場合には、次のコマンドでインストールしてenabledにしましょう。
sudo apt-get install avahi-daemon
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
systemctl status avahi-daemon
まとめ
mDNSの仕組みを使って、ホスト名.local で簡単に接続できる方法を紹介しました。DHCPを動かしている自宅ネットワークなどで、ラズパイでわざわざ固定IPの設定をしなくて済むようになります^^
それではみなさん、素敵なラズパイライフを!
ディスカッション
コメント一覧
まだ、コメントがありません