stylesheet

2018-05-19

IP直打ちやhosts編集が面倒になったのでmDNSを設定しまくる

BonjourだとかzeroconfだとかmDNSの話。
閉じたネットワークで`ホスト名.local`でサーバーマシンにアクセスできれば満足。Service Discoveryとかはスルーの方向性で。

Linux (Debian系)

最初から入っているディストリも多いが、ホスト名を設定してavahi-daemonlibnss-mdnsを入れるだけ。

avahi-daemonがresponderでlibnss-mdnsのほうがクライアントとして動作する。 ラズパイやオレンジパイも同じ。

$ sudo -e /etc/hostname
$ sudo apt install avahi-daemon libnss-mdns

Windows10

ネイティブサポートされているようだがファイアーウォールで止められている。UDPポート5353を開放すると使えるようになる。

面倒であれば、Bonjourをインストールするとファイアウォールが自動で構成されるので手っ取り早い。

ホスト名はコンピュータ名を使う。

MacOS, iOS

最初から使用可能。設定のローカルホスト名とか名前とかそこらへんでホスト名を決める。

esp8266

Arduinoスケッチの場合は、ESP8266mDNSライブラリをインクルードしてMDNS.beginをコールするだけ。

この類のマイコンでmdnsはかなり有用。

#include <ESP8266mDNS.h>
MDNS.begin("superhost");

Android

SDKでAPIは提供されているが、アプリ側で対応が必要。そして現状、chromeでは使えない。

スマホは公共ネットワークに接続することも多いだろうから、セキュリティ的に使えなくて正解かもしれない。