RaspberryPiにBonjourをインストールしてみる
前々から気にはなっていたんですが、別途ソフトのインストールが必要だったので尻込みしていたのですが、Windows10の最近のビルドではデフォルトでBonjourに対応している様です。そこで固定IP以外で、名前でもホスト指定できるようにしようと思います。
以下のブログを参考にさせていただきました。(実質、Windows10側は何も設定しなくても大丈夫でした)
Windows10側の設定の確認
Windows10はBonjourは対応しているのですが、ファイアウォールの設定でアクセスできないこともあるので内容の確認をしておきます。
【コントロールパネル】を開き、
その中の【システムとセキュリティ】をクリックし、
更に【WindowsDefenderファイアウォール】をクリックします。
ウインドウの左側のペインから【詳細設定】をクリックします。
クリック後に表示されるファイアウォール設定のウインドウの左側のペインから【受信の規則】を選択すると、
中にBonjourの設定があるのがわかると思います。 Bounjourの設定が複数ありますが、TCPやUDPなどの細かい設定の違いがあるようです。 複数あるなかに以下のような設定のあるものがあれば問題はなさそうです。
ポートは5353
に制限してもいいかなとは思いますが今回はそのままにしています。
RaspberryPi側の設定
Windows側の設定が確認できたので次はRaspberryPiの設定になります。設定するのはBonjour
ではありますが、パッケージ名はavahi-deamon
となります。
Avahi はBonjourのZeroconf仕様の実装とのことです。
インストールは以下でOKです。
$ sudo apt-get install avahi-daemon パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 avahi-daemon はすでに最新バージョン (0.6.32-2) です。 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 2 個。
既に最新版がインストールされていました。調べてみるとRasbian jessie以降にはデフォルトでインストールされているようです。
動作確認
これでhostnameをつかってpingやSSHなどを行うことができます。
RaspberryPi上からの自ホストへのping
$ ping raspberrypi.local PING raspberrypi.local (192.168.0.8) 56(84) bytes of data. 64 bytes from 192.168.0.8 (192.168.0.8): icmp_seq=1 ttl=64 time=0.109 ms 64 bytes from 192.168.0.8 (192.168.0.8): icmp_seq=2 ttl=64 time=0.102 ms 64 bytes from 192.168.0.8 (192.168.0.8): icmp_seq=3 ttl=64 time=0.099 ms 64 bytes from 192.168.0.8 (192.168.0.8): icmp_seq=4 ttl=64 time=0.096 ms 64 bytes from 192.168.0.8 (192.168.0.8): icmp_seq=5 ttl=64 time=0.098 ms 64 bytes from 192.168.0.8 (192.168.0.8): icmp_seq=6 ttl=64 time=0.092 ms 64 bytes from 192.168.0.8 (192.168.0.8): icmp_seq=7 ttl=64 time=0.095 ms ^C --- raspberrypi.local ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 6231ms rtt min/avg/max/mdev = 0.092/0.098/0.109/0.012 ms
RaspberryPi上からのWindows10へのping
Windows10側のホストネームはUindows10
にしています。
$ ping UINDOWS10.local PING UINDOWS10.local (192.168.0.5) 56(84) bytes of data. 64 bytes from 192.168.0.5 (192.168.0.5): icmp_seq=1 ttl=128 time=1.67 ms 64 bytes from 192.168.0.5 (192.168.0.5): icmp_seq=2 ttl=128 time=1.61 ms 64 bytes from 192.168.0.5 (192.168.0.5): icmp_seq=3 ttl=128 time=4.54 ms 64 bytes from 192.168.0.5 (192.168.0.5): icmp_seq=4 ttl=128 time=8.80 ms 64 bytes from 192.168.0.5 (192.168.0.5): icmp_seq=5 ttl=128 time=5.97 ms 64 bytes from 192.168.0.5 (192.168.0.5): icmp_seq=6 ttl=128 time=4.56 ms ^C --- UINDOWS10.local ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5008ms rtt min/avg/max/mdev = 1.612/4.529/8.801/2.482 ms
RaspberryPi上からの自ホストへのssh
$ ssh pi@raspberrypi.local Linux raspberrypi 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Aug 20 14:48:22 2017 from 192.168.0.8 $ exit ログアウト Connection to raspberrypi.local closed. $
Windows10上からの自ホストへのSSH
PS C:\> ping UINDOWS10.local Pinging UINDOWS10.local [XXXX::XXXX:XXXX:42ea:XXXX%11] with 32 bytes of data: Reply from XXXX::XXXX:XXXX:42ea:XXXX%11: time<1ms Reply from XXXX::XXXX:XXXX:42ea:XXXX%11: time<1ms Reply from XXXX::XXXX:XXXX:42ea:XXXX%11: time<1ms Reply from XXXX::XXXX:XXXX:42ea:XXXX%11: time<1ms Ping statistics for XXXX::XXXX:XXXX:42ea:XXXX%11: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms PS C:\>
Windows10上からのRaspberryPiへのping
PS C:> hostname UINDOWS10 PS C:\Users\uepon> ping raspberrypi.local Pinging raspberrypi.local [XXXX::XXXX:XXXX:aa9:XXXX%37] with 32 bytes of data: Reply from XXXX::XXXX:XXXX:aa9:XXXX%37: time=4ms Reply from XXXX::XXXX:XXXX:aa9:XXXX%37: time=4ms Reply from XXXX::XXXX:XXXX:aa9:XXXX%37: time=6ms Reply from XXXX::XXXX:XXXX:aa9:XXXX%37: time=4ms Ping statistics for XXXX::XXXX:XXXX:aa9:XXXX%37: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 4ms, Maximum = 6ms, Average = 4ms
Windows10上からのRaspberryPiへのSSH(Teratermから)
HOST設定にraspberrypi.local
を設定する点だけが変更点になります。
無事接続できています。
Windows10上からRaspberryPiへのSSH(Bash On Ubuntu On Windowsから)
Bash On Ubuntu On WindowsではSSHがあるので同様にできそうなのですが…
$ sudo apt-get install avahi-daemon $ sudo service avahi-daemon start initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: 接続を拒否されました * Starting Avahi mDNS/DNS-SD Daemon avahi-daemon $ ssh pi@raspberrypi.local ssh: Could not resolve hostname raspberrypi.local: Name or service not known
名前解決ができないため、アクセス出来ないようです。 もちろん、IPアドレス直接であれば問題なくアクセスはできています。
ググってみると同様の現象がでているようです。
Dbusというdeamonも影響しているようです。ちょっと残念ですが、今後修正されていくことでしょう。
おわりに
今回はほとんど何も設定していませんでしたが…。
Windows10でもデフォルトでBonjour
のサービスが含まれたので特別にアプリケーションをインストールすることなく、Bonjour
を使うことができました。それも容易です。IPが変わる可能性のある環境だとこちらのほうが圧倒的にいいのかもしれません。
食わず嫌いだったということですかね、やっぱり。