CloudflareのDNS(1.1.1.1)をDNS over HTTPS(DoH)で使う

CloudFlare が、ユーザーの IP アドレスを記録しないことをうたう DNS サービス 1.1.1.1 の提供を開始しました。この DNS サービスは DNS over HTTPS (DoH) に対応しているということで、Mac OS (10.11.6 / El Capitan) で 1.1.1.1 を DoH 経由で使用するための設定方法をメモしておきます。 なお、エンジニアな方はRunning a DNS over HTTPS Client(英語)を読んだ方が正確です。

環境

Mac OS 10.11.6 (El Capitan)
Homebrew インストール済み

インストール

1$ brew install cloudflare/cloudflare/cloudflared

DNS Proxy デーモンの動作確認

1$ sudo cloudflared proxy-dns
2
3INFO[0000] Adding DNS upstream                    url="https://cloudflare-dns.com/dns-query"
4INFO[0000] Starting metrics server                addr="127.0.0.1:49312"
5INFO[0000] Starting DNS over HTTPS proxy server   addr="dns://localhost:53"

上記の表示がでていれば、デーモンの起動は問題ありません。
続いて、新たなターミナルを起動して、インストールした Cloudflare の DNS Proxy を用いて、正しく名前解決出来るか確認します。

1$ dig +short @127.0.0.1 cloudflare.com AAAA
2
32400:cb00:2048:1::c629:d6a2
42400:cb00:2048:1::c629:d7a2

上記の通りなら問題ありません。

設定ファイルの作成

デーモンの動作確認で起動した cloudflared proxy-dns を Ctrl+C で終了してから

1$ mkdir -p /usr/local/etc/cloudflared
1$ cat << EOF > /usr/local/etc/cloudflared/config.yaml
2proxy-dns: true
3proxy-dns-upstream:
4 - https://1.1.1.1/dns-query
5 - https://1.0.0.1/dns-query
6EOF

以上で設定ファイルの作成は完了です。

サービスのインストール

1$ sudo cloudflared service install
2
3INFO[0000] Applied configuration from /usr/local/etc/cloudflared/config.yaml
4INFO[0000] Installing Argo Tunnel as an user launch agent
5INFO[0000] Outputs are logged in /tmp/com.cloudflare.cloudflared.out.log and /tmp/com.cloudflare.cloudflared.err.log

上記の通りなら問題ありません。

Mac OS のネットワーク設定で インストールした DNS Proxy を指定する

  1. アップルメニュー → システム環境設定 → ネットワークを開く
  2. 使用しているネットワーク( Wi-Fi や Thunderbolt Ethernet など)を選択し、詳細ボタンを押す
  3. DNS タブを開く
  4. DNS サーバに 127.0.0.1 を入力し、OK で閉じる
  5. ネットワーク設定も 適用 → OK で閉じる

以上で設定は全て完了です。
システムを再起動し、ブラウジング、メールなどに問題がなければ正常に動作しています。
お疲れさまでした。