![見出し画像](https://assets.st-note.com/production/uploads/images/127736493/rectangle_large_type_2_3cfb118fa04a3370fbbdbf2ee5a9bb85.png?width=1200)
【tailscale×AdGuard】あらゆるデバイスの広告ブロックを一元的管理
こんにちは、子育てミニマリストのメメです。
私は子育て中のミニマリストとして、節約投資に関する情報やラズベリーパイなどのサーバー関係の情報を発信しています。
特に、広告ブロック関係の記事はアクセス数も多く、人気です。
先日も子どもにLINEアプリに表示される広告を見せたくないという方からコメントをいただきました。
上記の記事はいずれもローカル環境に仮想VPNを構築するアプリを用いた方法であり、それぞれの端末ごとに広告ブロックの設定をする必要がありました。
今回は、メッシュVPNサービスのtailscaleとオープンソースの広告ブロックサービスのAdGuard Homeを用いて各端末の広告ブロックを一元的に管理していきたいと思います。
1.メッシュVPNサービスTailscaleとは?
Tailscaleとは高速なプライベートネットワークプロトコルのWireguardを用いたメッシュ型のVPNサービスです。
Tailscaleは、所有するデバイスとアプリケーションを世界中のどこにでも安全かつ簡単にアクセスできるようにするVPNサービスです。オープンソースを使用して、ポイントツーポイントの暗号化接続を可能にします WireGuard プロトコル。つまり、プライベートネットワーク上のデバイスのみが相互に通信できます。
メッシュVPNと聞くとなんだか難しく聞こえますが、Tailscale公式サイトの以下の画像が分かりやすいです。
![](https://assets.st-note.com/img/1695557982454-z9ne8bVazl.png?width=1200)
![](https://assets.st-note.com/img/1695558003129-iwIbdA2BN0.png?width=1200)
従来のVPNはVPNのハブ(サーバー)を経由して各端末を繋いでいましたが、Tailscaleはハブを経由せずに各端末間で通信が可能になるため、遅延が少なくなります。
通信方式にはオープンソースのWireguardを用いており、他のVPNプロトコルと比較して高速なのが特徴です。
![](https://assets.st-note.com/img/1695558226601-knj24MVoMi.png?width=1200)
私自身、ラズベリーパイを用いてWireguardのVPN環境を構築していたため、
Tailscaleのメリットが実感できず、導入していませんでした。
しかし、Tailscaleは以下のメリットがあります。
・対応するプラットフォームが多い
→iOS,MacOS,Android,Linux(FireTVも動作確認済み)
・認証方法が簡単
→既存のGoogleやAppleアカウントで認証
・端末のDNSを一元管理できる
→AdGuard HomeのDNSサーバーを指定することで広告ブロック可能
・Exit nodeを用いてフリーWi-Fiも安全に接続できる
→接続元を自宅等にできる
PiVPNを用いたVPNの構築はコマンド一つでできるため簡単でしたが、クライアント側の認証の設定が難しい点や、VPNハブ(サーバー)の負担が大きくなるというデメリットがありました。
しかし、Tailscaleは上述の通り、GoogleやAppleアカウントさえあれば誰でも導入できます。
無料アカウントでは20台まで導入できます。
2.Tailscaleの導入
具体的な導入方法は公式サイトや以下のサイトをご覧になってください。
参考に、ラズベリーパイ4で導入した時のコマンドを載せておきます。
$ curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
$ curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
$ sudo apt-get update
$ sudo apt-get install tailscale
$ sudo tailscale up
導入が完了し、ログインすると以下のような管理画面が表示されます。
![](https://assets.st-note.com/img/1695559076001-AQQFvmJbA6.png?width=1200)
3.AdGuard Homeの導入
公式サイト等を参考にAdGuard Homeを導入します。
私は自宅のラズベリーパイ4にDocker環境で構築しました。
参考に私が愛用しているフィルタルールを記載しておきます。
https://280blocker.net/files/280blocker_domain_ag_202309.txt
※末尾の202309は2ヶ月で無効になるので定期的に更新してください。
https://raw.githubusercontent.com/tofukko/filter/master/Adblock_Plus_list.txt
ブラックリストは以下のものを用いています。
||sch.line.me^
||obs.line-scdn.net^
||gw.line.naver.jp^
||rmp.rakuten.co.jp^
これで、LINE広告と楽天リンクアプリの広告がブロックできます。
4.Tailscaleに広告ブロックDNSを設定
最後にTailscaleの管理画面に広告ブロックサーバーのDNSを設定します。
今回はラズベリーパイにAdGuard Homeを導入したので、ラズベリーパイのTailscale上のIPアドレス(100.xx.xx.xx)を登録します。
![](https://assets.st-note.com/img/1695561354553-K3c2Cr3qqr.png?width=1200)
ポイントは、Override local DNSをオンにすることです。
これで、Tailscaleをインストールしたすべての端末のDNSサーバーがAdGuard Home経由になり、広告がブロックされます。
5.まとめ
今回は、TailscaleとAdGuard Homeを用いた広告ブロック方法を紹介しましたがいかがだったでしょうか?
Tailscaleをインストールするだけで広告ブロックルール等が一元管理できるので便利ですね。
もちろん、Fire TV Stickにインストールすれば、Fire TVの広告もブロックできます。
しかし、Tailscaleをインストールすべての端末のDNSリクエストがDNSサーバー(ラズベリーパイ)に行くため、負荷については観察中です。