/etc/hosts にワイルドカードは書けますか
書けません。
はじめに
仕事に集中したいけれどネットサーフィンをして時間を無駄にしてしまう……!そんなわけで /etc/hosts
にこんなエントリを追加している人は意外に多いのではないかと思います。
127.0.0.1 www.facebook.com
そうやってどんどんエントリを増やしていくことになるわけですが、できたらこんな風に書けたら良いなあと思ったりしますよね。
127.0.0.1 *.jp
残念ながら /etc/hosts
にワイルドカードを書くことはできないようなので、代替手段を調べてみました。
Dnsmasq
どうやら Dnsmasq という(DNS forwarder 兼 DHCP server な)ものをインストールして設定すれば良いらしいです。早速やってみます。うちの環境は OS X El Capitan ですが、Linux でもある程度は同様に設定できると思われます。
インストール
$ brew install dnsmasq
Homebrew は本当に便利です。Linux で root 権限を持っていなかったりシステムを汚したくない場合は Linuxbrew を使ってみると良いです。
OS X の設定
OS に、全ての .jp リクエストの DNS lookup は Dnsmasq(127.0.0.1
)に向けるように設定します。
(もしなければ)/etc/resolver
というディレクトリを作成して、
$ sudo mkdir -p /etc/resolver
対象ドメイン(.jp)名のファイル、つまり /etc/resolver/jp
に下記の行を追加します。
nameserver 127.0.0.1
Dnsmasq の設定
続いて Dnsmasq に、受け取った全ての .jp リクエストに対して 127.0.0.1
を返すように設定します。
設定ファイルの例(ちなみにこの設定ファイルを眺めてみると Dnsmasq でできることが色々と分かりそうです)をコピーしてきて、
$ sudo cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
下記の行を追加します。
address=/jp/127.0.0.1
起動
あとは起動すればおしまい。
$ sudo brew services start dnsmasq
まとめ
仕事しましょう。