Macでdnsmasqを使ってお手軽名前解決
最近興味があってBoxenを調べています。BoxenはMacで開発するための
環境をよしなに整えてくれるツールなんですが、その中で気になったのが下記のヤツ
dnsmasq w/ .dev resolver for localhost
はて?dnsmasqで.dev resolver for localhostてどんな事してくれるんじゃろかい?
何してくれんの?
端的に言うと
あぁ上に書いてある説明どおりですね。ていう事をやってくれます。
もう少し噛み砕くと、ローカルでの開発用に hoge.dev, fuga.devみたいなドメインが欲しくなった時って、/etc/hostsに一個一個定義してたりしましたが、もうこんな事しなくてもいいんですぜ旦那。「*.dev」のドメインであれば、勝手に127.0.0.1に向く用にできまっせ。という話
# /etc/hosts 127.0.0.1 hoge.dev 127.0.0.1 fuga.dev
ではboxenが自動でやってくれるような事をわざわざ手動でやってみます。アナログ最高。ヒャッハー!!!!
ちなみにboxenのpuppetのヤツはここです。
dnsmasq のインスコ
$ brew install dnsmasq
設定ファイルの用意
# 設定ファイルのコピペ $ cp $(brew list dnsmasq | grep /dnsmasq.conf.example$) /usr/local/etc/dnsmasq.conf # 自動起動の設定ファイルコピペ $ sudo cp $(brew list dnsmasq | grep /homebrew.mxcl.dnsmasq.plist$) /Library/LaunchDaemons/ $ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
dnsmasq.confの設定変更
- exampleは色々設定が書いてあるがboxenのpuppe-dnsmasqと同じような内容を設定すればおk
- https://github.com/boxen/puppet-dnsmasq/blob/master/files/dnsmasq.conf
# /usr/local/etc/dnsmasq.conf # wildcardでの名前解決を許す? bind-interfaces # launch deamonで動かすために常にforgroundで起動 keep-in-foreground # /etc/resolve.confを見ない no-resolv # *.dev ドメインへのアクセスは全てlocalに。 address=/dev/127.0.0.1 # 名前解決する時にローカルを見るためには自動的にloopbackしてくれんので、明示的に設定するとかなんとか? listen-address=127.0.0.1
/etc/resolver/devの設置
# /et/resolver/devを作成 $ sudo mkdir -p /etc/resolver $ sudo touch /etc/resolver/dev # 中身はこの一行のみ nameserver 127.0.0.1
確認
ここまで作業は終わりあとは確認
# *.dev のドメインは全て127.0.0.1が返ってくればOK $ ping -c 1 hoge.dev $ ping -c 1 hoge.fuga.dev $ ping -c 1 hoge.fuga.piyo.dev # 他の名前解決に支障がないか一応確認 $ ping -c 1 www.google.com
余談
参考
- http://passingcuriosity.com/2013/dnsmasq-dev-osx/
- http://nauthiz.hatenablog.com/entry/20100929/1285778758
- http://int128.hatenablog.com/entry/20120226/1330247800
- http://co-sol.jp/techdb/2013/01/dnsmaq_for_vm_name_resolution.html
- http://yukotan.blogspot.jp/2013/03/macdnsmasq.html
- http://fixture.jp/blog/2013/02/how-to-install-dnsmasq-on-mountain-lion/
- http://www.echoditto.com/blog/never-touch-your-local-etchosts-file-os-x-again
- http://blog.evan.pro/how-to-set-up-dynamic-virtual-hosts-for-web-development
今、感情は無であり、至って落ち着いています。