 
Bonjour
iPhoneのテザリングを使用して、EPSONのモバイルレシートプリンタ TM-P20II を接続しようと思いました。しかし、iPhoneからはプリンタのホスト名(epsonなんとか)でプリンタにアクセスすることができないんです。
プリンタの ipアドレス を指定すれば、iPhone からアクセスすることは可能ですが、
私がやりたいのは https でのアクセスで、ホスト名でのアクセスなのです。
これがしたいがために、DNSサーバー を立てようと試みましたが、キャリア通信時には DNSサーバー が変更できないようで悩みました。
その答えが、Bonjour でした。
これは ホスト名(epsonなんとか)+「.local」とつけるだけで https でアクセスできるようになるんです。
ここに到達するまでに1日かかりました。
その間の調査記録を残しておこうと思いました。
 
iPhone は hosts が書き換えられないので、DNS サーバーを変更しようと思いました。
(wifi通信時ならDNSサーバーは書き換えられるが、キャリア通信時には書き換えられないかも)
テストで epsonc6ca09 と 172.20.10.6 の対応付けを行ってみます。
version: '3'
services:
  dns:
    image: andyshinn/dnsmasq
    ports:
      - "53:53/udp"
      - "53:53/tcp"
    extra_hosts:
      - "epsonc6ca09:172.20.10.6"
    cap_add:
      - NET_ADMIN
    dns:
      - 8.8.8.8
      - 8.8.4.4起動すると53ポートが使用されているとワーニングがでたので調査しました。
sudo lsof -i :5353ポートを使用しているサービスが、systemd-resolved とわかり止めました。
sudo systemctl stop systemd-resolvedしかし、止めてしまうと DNS が全く引けなくなったので、systemd-resolved を起動しました。
sudo systemctl start systemd-resolvedやはり、hosts に nameserver を書けばいけますね。systemd-resolved を止めました。
nameserver 127.0.0.53
options edns0 trust-ad
search .nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.53
options edns0 trust-ad
search .以上
