深酒とお昼寝で忘れる

深酒とお昼寝で忘れる

素面でも意図したことを忘れがちなしらふいとさんは、忘れる前に何かしら書き残せたらとても満足のようです

/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

まとめ

仕事しましょう。