とある事情で、ローカルで開発中のWebサイトにスマホからアクセスしたくなったので調査&メモ
スマホから同一ネットワークに接続した後、Webサーバーの立っている、鯖のIPアドレスを打てば、
単純にアクセスできるのだが、iphoneはhostsファイルを書き換えるなんてことは、(脱獄しない限り)できないようなので、
リバースプロキシなんかが入っていて、名前解決をローカルでやっている場合は、DNSを変更するしかないっぽいようだ。
(まぁそうですよね。。)
はじめbindを使うのかなと思ったてたけど、もっと簡易用のものがありました。
macなのでdnsmasqなるのを使うみたいです。
これは/etc/hostsでの名前解決が利用できるので便利みたいですね。
私の場合は、homebrewから入れて設定してみました。
sudo brew install dnsmasq touch /usr/local/etc/dnsmasq.conf sudo ln -s /usr/local/etc/dnsmasq.conf /etc/dnsmasq.conf
↑上記のどこかでファアーウォールの穴を開けるか否かのダイアログが出てくる(場合がある)ので53(DNS)に関しては開けておく。
※/etc内にリンクしているのは好みです。
/etc/dnsmasq.conf(/usr/local/etc/dnsmasq.conf) に下記を記載
port=53 domain-needed bogus-priv expand-hosts local=/axtstar.com/ log-queries log-facility=local0
/etc/hostsを下記のように追加
xx.xxx.xx.xxx jp.axtstar.mymac
xx.xxx.xx.xxxはmacのIPアドレスですifconfigなどでIPを調べておいてください。
jp.axtstar.mymacは解決すべきドメイン
つまりiphoneのsafariで下記アクセスできるようにする設定(iphone側でDNS変更も必要ですが→後編)
http://jp.axtstar.mymac/index.html
ローカルで開発している場合は大抵hostsファイルが 127.0.0.1 jp.axtstar.local みたいになっているのではなかろうか? その場合、 xx.xxx.xx.xxx jp.axtstar.local としても、mac/ipodtouchから「.local」↑では接続できなかった。 androidからも、一部表示が変だった。
上記で設定完了
後は起動するのみ
#スタート sudo brew services start dnsmasq #ストップ sudo brew services start dnsmasq #リスタート sudo brew services restart dnsmasq
サーバ側設定ここまで。