Android用広告ブロックアプリDNS66のIPv6対応設定

以前に紹介した非rootで使えるAndroid用の広告ブロックアプリ DNS66がバージョン0.5でインターフェースを一新し、IPv6対応になったので再度設定方法のご紹介。
なんで紹介記事を再びやるかっていうと、要するにかなり変わっちゃったのとちょっと解りにくいところがあるのね。

とりあえず、GitHubのdns66のissueのページから最新版のAPKファイルをダウンロードしてインストールする。(2017年5月7日現在はVer.0.5.1 (13)が最新で、ダウンロードするのはorg.jak_linux.dns66_13.apkというファイル)

新しいDNS66 1
画面1:
DNS66をインストールして起動したところ。
設定しなきゃならないので先ずは画面上部の「ホスト」タブを押す。

新しいDNS66 2
画面2:
広告ブロック用のホストファイルのリストが表示されるので右下の []を押す。

新しいDNS66 3
画面3:
今回も「悪いインターネット」の広告除去用HOSTSファイルを使用する。
① 「タイトル」はわかりやすいのをテキトーで。
「ロケーション(URLまたはホスト)」は http://warui.intaa.net/adhosts/hosts_lb.txt を入力。
② 「操作」は「拒否」を選択。(登録時は「拒否」が初期値なので触らなくて良い)
③ 画面右上の[]を押して保存。

新しいDNS66 4
画面4:
① リストの一番下に登録したホストファイルが表示され、その左の盾のアイコンが模様付きであることを確認。
② リストの他の全てのホストファイルの左側の盾のアイコンをクリックして白盾(無効)にする。
③ 「ドメインフィルターを有効にする」の右側のスイッチがオンになっていることを確認する。オフならオンにする。
④ 「ドメインフィルターを有効にする」の左側の[]を押す。

新しいDNS66 5
画面5:
① 「日次更新」のスイッチを「オン」にする。DNS66は以前から使用開始から暫くすると(翌日以降?)に読み込み済みのホストファイルをロストする問題を抱えているので毎日自動再読込させておけばロストすることは無いかと。ただし、日次更新が悪さをするようなら「オフ」に戻す。
② 右上の[](リロード)アイコンを押す。一つ前の画像の赤囲いが多すぎたのでこの記事ではこのタイミングで書いているが、「ホスト」タブの画面で何か変更したら必ずこのアイコンをクリックする。
③ 「アプリ」タブを押す。

新しいDNS66 6
画面6:
新しいDNS66ではアプリ毎に広告ブロックの有効・無効を選択できる。(バイパスしたら「無効」)
何か広告ブロックしたくないアプリがあれば、若しくはDNS66を通したくないアプリがあればそのアプリの右横のスイッチをオンにする。
なお、初期値ではシステムアプリはバイパス(無効)になってるのでその点認識しておくと良いかと。
この画面はよほど何かなければ触る必要はないと思われる。
「DNSサーバ」タブを押す。

新しいDNS66 7
画面7:
(IPv6が要らない場合はこの画面と次の画面の手順を読み飛ばす。)
2017年5月21日追記: 仕様変更あり。特に利用したいDNSサーバがあるときには画面7及び画面8でカスタムDNSを登録する。なければ登録は不要。
DNSサーバーリストの右下の[]を押す。

新しいDNS66 8
画面8:
公共のIPv6対応DNSサーバを登録する。オススメは以下。

  • 2620:0:ccc::2   opendns
  • 2620:0:ccd::2   opendns
  • 2001:4860:4860::8888   google public dns
  • 2001:4860:4860::8844   google public dns

登録するのは上のどれか1つで十分だと思われる。

2017年5月8日追記: IPv6のDNSを有効にする場合はIPv4のDNSも必要らしい。でないとIPv4だけの環境に切り替わった場合に広告ブロックが停止するみたい。IPv6環境でしか使わないということであればIPv4のDNSを追加する必要はない。
IPv4のDNSとしては定番のGoogleのDNSサーバ8.8.8.8とか8.8.4.4あたりを追加すれば良いかと。

2017年5月21日追記: v0.5.2(14)で上の問題は対処された。(上の追記とその他関連箇所に取り消し線を追加)

① 「タイトル」はわかりやすいのをテキトーに。
「DNSサーバーのIPアドレス」のIPv6アドレスは「.」(ピリオド)ではなく「:」(コロン)を使うので気をつけて。また、IPv6アドレスはコロンが2つ連続することもあるので間違えないように。
② 「有効」のスイッチをオン。(登録時の初期値)
③ 画面右上の[]を押して保存。

新しいDNS66 9
画面9:
① 登録したIPv6のDNSサーバがリストの一番下に表示されていて左横がになってることを確認する。
② リストに表示されているその他のDNSの左横がになっているチェックボタンを押して「チェックなし」にする。
③ 「カスタムDNSサーバーを有効にする」のスイッチをオンにする。
④ 右上の[](リロード)アイコンを押す。
⑤ 左上の「開始」タブを押す。

新しいDNS66 10
画面10:
「開始」タブの下側にある[]を押す。

新しいDNS66 11
画面11:
① 「起動時に自動的に開始する」のスイッチをオン。(端末の電源をオンにしてシステムを起動したときや再起動したときに自動的にDNS66を起動させたい場合)
② 「接続を監視」のスイッチをオン。(新しいオプションだが、何を監視するのか不明)
③ 「IPv6サポート」のスイッチをオン。(IPv6が不要ならオフ)
④ 「開始」を押す。(広告ブロック機能スタート)

新しいDNS66 12
画面12:
① 丸だったのが盾に変わることを確認。(その下は「停止」が表示される)。開始タブの下の表示が「実行中」になる。
② 一番上の通知エリアに鍵マーク(VPNが有効)が表示されることを確認する。①と②の両方が揃ったら一応DNS66の広告ブロックが動作しているといえる。
③ 「開始」タブの下側にある[]を押す。

新しいDNS66 13
画面13:
一応、これがメイン画面でDNSの広告ブロック機能が「動作中」の表示。手動で停止させる時は「停止」ボタンを押す。以前のように長押しではなくなったみたい。

新しいDNS66 14
画面14:
ブラウザで「悪いインターネット」でネットワークの状態を表示した。IPv6とIPv4共に通信出来ている。

最後の部分、何故IPv6とIPv4で通信できていることを強調しているか。
設定の途中の画面11でIPv6サポートをオンにしたらIPv6で通信できるかと思いきや実はそうではない。
画面8のIPv6なDNSサーバの登録と画面9の③を行わないと画面11でIPv6サポートをオンにしていてもIPv6の通信全てがブロックされる謎の仕組みがとなっている。(名前解決に関係無い部分も)
DNS66の広告ブロックをONにすると何故かIPv6では通信できないので随分と悩まされて作者に質問した結果こういうことだと判った。

DNS66がIPv6に対応したのが0.5.0からなので、まだおかしな部分が残っているんだろうね。

2017年5月8日追記(その追記を変更):
新しいDNS66 15
画面15:
大きめの不具合があると思ってここに追記してたけど、勘違いというか仕様を理解していなかったのでここの追記をほぼ丸ごと修正した。
画面8のところにも追記している件の関連だけど、カスタムDNSについて。
ここはIPv4だけの環境であればカスタムDNSサーバは無効で問題ない。どうしても使いたければ使うのはもちろんあり。
で、IPv6でも広告ブロックを使いたいとなるとカスタムDNSの有効化は必須(追記のすぐ上の部分に書いてること)。IPv4だけで使うときはカスタムDNSが不要でIPv6で使う場合はIPv6のDNSサーバが必要なので、IPv6のDNSだけ追加すれば良いのかと思ったが、どうも間違いらしい。IPv6のDNSだけを登録してカスタムDNSを有効にするとIPv6(IPv6+IPv4)の環境からIPv4だけの環境に切り替わった場合にDNS66の広告ブロック機能が停止する。上の画像のように再接続エラーになる。VPNの鍵アイコンも消える。
ただし、IPv6(IPv6+IPv4)の環境に戻れば広告ブロックは復活する。
どんな状況かというと、IPv6(IPv6+IPv4)な家庭内の無線LANで使ってて、外出してLTEに切り替わりIPv4だけなった場合など。これだと外出したら広告ブロックが効かなくなるので困る。
だからIPv6とIPv4な環境でDNS66の広告ブロックを使いたいという場合はとにかくIPv6とIPv4のDNSサーバを最低でも1つづつ有効にしてやらないとダメ。

2017年5月21日追記:
5月19日にv0.5.2(14)がリリースされた。上の取り消し部分について作者に質問していたのだが、改善点として採用されたらしく、このバージョンで問題に対処したと書かれている。つまり、カスタムDNSを登録しなくてもIPv6の通信は妨げられないようになったようだ。

関連記事: