unboundを使って、iPhone、Androidの名前解決をよしなにやる
開発現場において、本来とは違うIPアドレスを返して確認するということをよくやると思います。
PCで確認できるページであれば、ローカルPCの /etc/hosts
を書き換えてチェックするという手法が一般的かと思います。
ただし、iPhoneやAndroidで同じようなことをするために、
/etc/hosts
を書き換えるのはかなり難しいです。(iPhoneは脱獄とかしないと多分できないはず)
そこで、ローカルにDNSキャッシュサーバーを立てて、そこで名前解決させるようにして、iPhoneやAndroidでもPCと同じような確認ができるようにするための手順をまとめました。
今回は、DNSキャッシュサーバーに unbound
を使います。
Unbound 導入のすすめ — Mobage Developers Blog
1 unboundを立てる
Macであれば、homebrewでインストールできます。
brew install unbound
2. unboundのconfの設定と起動
homebrewでインストールしたunboundであれば、
だいたい、
/usr/local/etc/unbound/unbound.conf
に設定ファイルが用意されていると思います。
で、下記のようにlocal-dataに書き換えたいレコードを書きます。
server: verbosity: 5 # 使用するインターフェース。以下ではデフォルトルートを指定 interface: 0.0.0.0 access-control: 172.0.0.1/12 allow username: "nobody" # ローカルのサーバの名前とIPアドレスの対応を登録 local-data: "example.com. IN A 10.0.0.1"
で、起動します
sudo /usr/local/sbin/unbound -d -c /usr/local/etc/unbound/unbound.conf
3. 端末の設定
端末で、DNSを立ち上げunboundに向ける必要があります。
iPhoneの設定
設定 -> Wi-Fi -> iマーク -> DNS を選択して、DNSのIPアドレスを書き換えて下さい。 (書き換える前に、元のDNSのIPアドレスは控えておくのが良いかと)
Android
設定 -> Wi-Fi -> 接続されているWi-Fiを長押し -> ネットワークを変更 -> DNS1 を書き換えて保存
で 確認できます!