まだ広告で消費してるの? 知らないと損!! NextDNSを今すぐ設定して楽になろう!

じゃんくはっく
じゃんくはっく

今日はあまりマニアックなネタじゃないので、皆が有益になれると思うよ!

ちょっとタイトル煽ってますね?w

ぴー
ぴー
じゃんくはっく
じゃんくはっく

そう?w 今回のネタは、広告を消す方法です! これだったらみんなメリットあるよね!

でも、簡単じゃないとだめですよ!

ぴー
ぴー

さて、今日のネタは「広告を消す!」です。しかも設定は簡単で、androidもiosもPC(mac・windows・Linuxも)でもぜーんぶ、簡単に設定できます。ぴーちゃんのご要望通り、設定は簡単なんで記事自体もすぐ終わっちゃいそうですが・・・

さっそく設定!

NextDNS

https://nextdns.io

まず、ここにアクセスして設定をゲットしましょう。以下のように説明が出ますのでその通りにするだけです。例えばandroidの場合は以下です。

****.dns.nextdns.io をコピペします。そして、説明の通りスマホの設定からプライベートDNSをコピペして保存するだけOKです。

実際に広告が消えたか確認してみましょう。あと、NextDNSはアカウント作っておいたほうがいいです。以下、確認できて気に入ったら登録して使ってみましょうね!

広告が消える!!!

さて、今回は説明するために、まださっきの「保存」ボタンは押していません。この状態で、例えば smartnewsのアプリを開きます。ブラウザでどこか広告が表示されるページを開いてもいいのですが、アプリ上の広告も消えますのでその一例です。

ご覧のように中央にがっつりと、広告が表示されていますよね。smartnewsは好きなんすが、この広告が非常にうっとうしい!んですよね。これは見るべき情報なのか、広告なのかいちいち判断しないといけません。

 で、さきほどの保存(設定)ボタンを押して、NextDNSの設定をイキにさせます。SmartNewsは、↓下に引っ張り情報をリロードします。キャッシュが効いてうまく情報が更新されない場合は、一度アプリをタスクから終了して起動しなおしてみてください。

なんということでしょう! 中央にデカデカと表示されていた広告はもうありません。それに、どのタブに行っても、もう紛らわしい広告が表示されていません!

仕組みの概略

広告を表示するためには、そのURLにアクセスする必要があります。URLにアクセスするためには、そのURLに含まれるドメイン名をIPに変換する必要があります。それを解決するのは通常、DNSのポート53応答によって行われます。プライベートDNSは、DNS問い合わせをどこか違うポートで暗号化通信しているようです。そしてNextDNSに名前解決を問い合わせ、広告関連のURLは全部、名前解決されなずブロックされる・したがって広告は表示できない・という事が原理の概要です。

 つまり、この仕組みなのでブラウザ上でもアプリ上でも広告が消えるというわけです。

スマホ上でDNSのパケット採取

上記の推論の一部を実際に確認してみたいと思います。まず、さきほど設定したプレイベートDNSの設定をOffにします。そして、スマホ側でDNS関連のポート53応答をキャプチャー(tcpdump)します。そして、smartnewsを起動してみます。

$ sudo tcpdump -i wlan0 -nn port 53
::
09:48:34.548342 IP 192.168.1.47.59746 > 192.168.1.1.53: 8385+ A? conf.smartnews-ads.com. (40)
09:48:34.766102 IP 192.168.1.1.53 > 192.168.1.47.59746: 8385 3/0/0 CNAME conf.smartnews-ads.com.edgekey.net., CNAME e802.g.akamaiedge.net., A 23.41.23.121 (136)
09:48:35.137376 IP 192.168.1.47.58770 > 192.168.1.1.53: 34097+ AAAA? web.facebook.com. (34)
09:48:35.166724 IP 192.168.1.1.53 > 192.168.1.47.58770: 34097 3/0/0 CNAME star.facebook.com., CNAME star.c10r.facebook.com., AAAA 2a03:2880:f00f:1:face:b00c:0:1 (105)
09:48:35.167288 IP 192.168.1.47.50930 > 192.168.1.1.53: 56757+ A? web.facebook.com. (34)
09:48:35.370994 IP 192.168.1.1.53 > 192.168.1.47.50930: 56757 3/0/0 CNAME star.facebook.com., CNAME star.c10r.facebook.com., A 31.13.82.1 (93)
09:48:36.332043 IP 192.168.1.47.53699 > 192.168.1.1.53: 35334+ A? www.smartnews.com. (35)
09:48:36.342106 IP 192.168.1.47.59887 > 192.168.1.1.53: 26778+ A? thumbnail.smartnews-ads.com. (45)
09:48:36.426088 IP 192.168.1.47.2835 > 192.168.1.1.53: 19416+ AAAA? mp.smartnews.com. (34)
09:48:36.573501 IP 192.168.1.1.53 > 192.168.1.47.53699: 35334 3/0/0 CNAME any.smartnews.com.edgekey.net., CNAME e1393.d.akamaiedge.net., A 23.41.23.236 (127)
09:48:36.738275 IP 192.168.1.1.53 > 192.168.1.47.59887: 26778 3/0/0 CNAME any.smartnews-ads.com.edgekey.net., CNAME e802.g.akamaiedge.net., A 23.41.23.121 (140)
09:48:36.758832 IP 192.168.1.1.53 > 192.168.1.47.2835: 19416 4/0/0 CNAME any-dual.smartnews.com.edgekey.net., CNAME e1393.dscksd.akamaiedge.net., AAAA 2600:140b:4800:394::571, AAAA 2600:140b:4800:3a2::571 (176)
09:48:36.759283 IP 192.168.1.47.20694 > 192.168.1.1.53: 5578+ A? mp.smartnews.com. (34)
09:48:36.928482 IP 192.168.1.47.7412 > 192.168.1.1.53: 31103+ A? imasdk.googleapis.com. (39)
09:48:36.970033 IP 192.168.1.1.53 > 192.168.1.47.20694: 5578 3/0/0 CNAME any-dual.smartnews.com.edgekey.net., CNAME e1393.dscksd.akamaiedge.net., A 23.47.133.205 (136)
09:48:37.190502 IP 192.168.1.1.53 > 192.168.1.47.7412: 31103 1/0/0 A 172.217.161.234 (55)
09:48:37.703602 IP 192.168.1.47.64201 > 192.168.1.1.53: 65301+ AAAA? www.googleapis.com. (36)
09:48:37.722921 IP 192.168.1.1.53 > 192.168.1.47.64201: 65301 4/0/0 AAAA 2404:6800:400a:809::200a, AAAA 2404:6800:400a:80c::200a, AAAA 2404:6800:400a:80b::200a, AAAA 2404:6800:400a:808::200a (148)
09:48:37.744633 IP 192.168.1.47.61439 > 192.168.1.1.53: 61508+ AAAA? r4---sn-3pm7sn7k.googlevideo.com. (50)
09:48:37.764935 IP 192.168.1.1.53 > 192.168.1.47.61439: 61508 2/0/0 CNAME r4.sn-3pm7sn7k.googlevideo.com., AAAA 2404:6800:400e:4::a (107)
09:48:37.765776 IP 192.168.1.47.51232 > 192.168.1.1.53: 57935+ A? r4---sn-3pm7sn7k.googlevideo.com. (50)
09:48:37.980047 IP 192.168.1.1.53 > 192.168.1.47.51232: 57935 2/0/0 CNAME r4.sn-3pm7sn7k.googlevideo.com., A 74.125.171.106 (95)
09:48:39.222221 IP 192.168.1.47.52047 > 192.168.1.1.53: 31868+ AAAA? r5---sn-3pm7dn7r.googlevideo.com. (50)
09:48:39.247036 IP 192.168.1.1.53 > 192.168.1.47.52047: 31868 2/0/0 CNAME r5.sn-3pm7dn7r.googlevideo.com., AAAA 2404:6800:400a:19::a (107)
09:48:39.247652 IP 192.168.1.47.24883 > 192.168.1.1.53: 34181+ A? r5---sn-3pm7dn7r.googlevideo.com. (50)
09:48:39.443678 IP 192.168.1.1.53 > 192.168.1.47.24883: 34181 2/0/0 CNAME r5.sn-3pm7dn7r.googlevideo.com., A 74.125.102.202 (95)
09:48:40.359428 IP 192.168.1.47.34298 > 192.168.1.1.53: 12112+ AAAA? play.googleapis.com. (37)
09:48:40.383957 IP 192.168.1.1.53 > 192.168.1.47.34298: 12112 1/0/0 AAAA 2404:6800:400a:806::200a (65)
09:48:40.384632 IP 192.168.1.47.27441 > 192.168.1.1.53: 62063+ A? play.googleapis.com. (37)
09:48:40.607511 IP 192.168.1.1.53 > 192.168.1.47.27441: 62063 1/0/0 A 172.217.161.202 (53)
09:48:45.191301 IP 192.168.1.47.38030 > 192.168.1.1.53: 9923+ A? pagead2.googleadservices.com. (46)
09:48:45.191846 IP 192.168.1.47.45560 > 192.168.1.1.53: 4539+ A? googleads.g.doubleclick.net. (45)
09:48:45.489110 IP 192.168.1.1.53 > 192.168.1.47.38030: 9923 2/0/0 CNAME pagead.l.doubleclick.net., A 172.217.161.194 (100)
09:48:45.589661 IP 192.168.1.1.53 > 192.168.1.47.45560: 4539 2/0/0 CNAME pagead46.l.doubleclick.net., A 172.217.26.98 (86)

192.168.1.1は、ルータアドレス、192.168.1.47はスマホです。

スマートニュース側には広告が表示されています。どれが広告関連の問い合わせかは不明です しかし、ここではそれはあまり重要ではありません。そこを追うのはやめて、次にプレイベートDNSを設定し、同じようにポート53をキャプチャーしてみます。

$ sudo tcpdump -i wlan0 -nn port 53
::
パケットが流れません!

はい、このようにプライベートDNSを設定しているとDNS問い合わせであるポート53応答には何もキャプチャーされません。しかし、実際には広告がない状態で表示されています。つまり、名前解決の問い合わせはどこか違う経路でやっていることになります。ちょっと専門的になりますが以下にその説明があります。

DNS暗号化について

https://blog.cloudflare.com/jp/dns-encryption-explained-jp/

どうやら、DoT(tcp/853)とDoH(tcp/443)かのどちらかのようですね。

 どこがブロックされたのかは、NextDNSのログに載っています。他にも面白い機能がありますので、いつか紹介してみたいと思います。

まとめ

今回、なんとなくわかったのは以下となります。

・NextDNSは、ちゃんと広告が消える!
・仕組みは、DNSの問い合わせを検閲し、ブロックしてくれるようだ
・プレイベートDNSは、ポート53ではなく違うポートで通信しているようだ(暗号化については未確認)
・DNS over TLS(DoT)または、DNS over HTTPS(DoH)と略されるようだ
・ポートはそれぞれ、DoT(tcp/853)とDoH(tcp/443)が使われるようだ
・プラットフォームに依存しないので、NextDNSは神アプリ(サービス)だと思う
・パケット(今だとギガと表現ですかねw)の消費も節約できる

あとがき

ちょっとブラウジングすると、すぐ広告にぶち当たりますよね。でもNextDNSがあれば、かなりこの消耗が少なくなります。今の所、知ってる人だけ使っている機能で、広告業界はこれに対抗する術がまったくありません。今後、どうなるのでしょうかね。

著者にメッセージ

記事の間違いや指摘事項など、コメントじゃなくて、個人的にやりとりしたい場合はこちらからどうぞ。お返事が遅くなるときもありますが、ご了承を。

    お気軽にコメントどうぞ〜!