はじめに
外出先から自宅のネットワークにアクセスしたい!...と思ったことはないでしょうか。
そう、この前書いた Proxmox ZFS × Immich(ROCm) で「我が家の Google Photos」を作ってみた で構築したフォトアルバムに外にいた時に見れないとなり、家に繋がる VPN 環境を作ろうと思いました。
従来の VPN 構築は設定が複雑でポート開放も必要でしたが、Tailscale を使うとその必要がなくなるようだったので、Tailscale を使用して VPN 構築をしてみました。
また、 AdGuard Home を組み合わせることで、広告ブロック環境が作れるようになったり、自宅内で引いているドメインがあれば DNS として使えるようになったりします。、、便利!
この記事では、Proxmox の LXC コンテナ内の Docker で、Tailscale と AdGuard Home を構築する手順を紹介します。
目次
- 構成概要
- 環境
-
Tailscale のセットアップ
3-1. docker-compose.yml の作成
3-2. 起動と認証
3-3. サブネットルーティングの設定 -
AdGuard Home のセットアップ
4-1. ポート 53 の解放 (systemd-resolved 無効化)
4-2. docker-compose.yml の作成
4-3. 初期設定 - Tailscale で AdGuard Home を使う設定
- 動作確認
構成概要
今回構築するシステムの全体像はこんな感じ。
ポイント:
- Tailscale でポート開放なしに VPN 接続
- サブネットルーティングで自宅 LAN 全体にアクセス可能
- AdGuard Home で外出先でも広告ブロック
環境
- Proxmox VE: 8.x
- LXC コンテナ: Ubuntu 24.04 (Docker インストール済み)
- Tailscale: Docker イメージ使用
- AdGuard Home: Docker イメージ使用
Tailscale のセットアップ
まずは Tailscale にアカウントを作成する。Google アカウントなどで簡単にサインアップできる。
docker-compose.yml の作成
参考:
作業ディレクトリを作成して、docker-compose.yml を書いていく。
mkdir -p /opt/tailscale
cd /opt/tailscale
vi docker-compose.yml
以下の内容を記述:
version: "3.7"
services:
tailscale:
image: tailscale/tailscale:latest
hostname: proxmox-tailscale
environment:
- TS_EXTRA_ARGS=--advertise-routes=192.168.1.0/24
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=true
volumes:
- tailscale-state:/var/lib/tailscale
network_mode: host
restart: unless-stopped
volumes:
tailscale-state:
設定のポイント
| 設定 | 説明 |
|---|---|
TS_EXTRA_ARGS=--advertise-routes=192.168.1.0/24 |
自宅 LAN のサブネットを Tailscale ネットワークにアドバタイズ |
TS_STATE_DIR |
Tailscale の状態を永続化するディレクトリ |
TS_USERSPACE=true |
重要! LXC コンテナでは TUN デバイスが使えないため、Userspace モードで動作させる |
network_mode: host |
ホストネットワークを使用 (LAN へのルーティングに必要) |
Userspace モード (TS_USERSPACE=true) について
LXC コンテナは軽量化のためにカーネル機能が制限されており、通常の TUN (Tunnel) デバイスが使えないことがある。Userspace モードはカーネルを使わずにアプリケーション内で VPN 処理を行うモード。
| モード | 仕組み | 特徴 |
|---|---|---|
| TUN (カーネル) | カーネル内で処理 | 高速、低遅延 |
| Userspace | アプリ内で処理 | TUN 不要、少し遅いが十分実用的 |
AI によると、スマホからの VPN 接続程度なら、Userspace モードで全く問題ないらしい。
起動と認証
docker compose up -d
起動後、ログを確認して認証 URL を取得する。
docker compose logs tailscale
ログに表示される URL (https://login.tailscale.com/...) にブラウザでアクセスして認証を完了させる。
サブネットルーティングの設定
Tailscale の管理画面 にアクセスすると、先ほど追加したマシンに「Subnets」の表示があるはず。
これで Tailscale クライアントから自宅 LAN にアクセス可能になった!
AdGuard Home のセットアップ
次に、広告ブロック機能を持つ DNS サーバー AdGuard Home を構築する。
ポート 53 の解放 (systemd-resolved 無効化)
Ubuntu ではデフォルトで systemd-resolved がポート 53 を使用しているため、AdGuard Home で DNS を提供するには、これを無効化する必要がある。
# 設定ファイルを編集
vi /etc/systemd/resolved.conf
以下のように変更:
[Resolve]
DNSStubListener=no
保存後、サービスを再起動:
systemctl restart systemd-resolved
ポートが空いたか確認:
ss -tulpn | grep :53
# 何も表示されなければ OK!
docker-compose.yml の作成
mkdir -p /opt/adguardhome
cd /opt/adguardhome
vi docker-compose.yml
以下の内容を記述:
version: "3.7"
services:
adguardhome:
image: adguard/adguardhome:latest
container_name: adguardhome
hostname: adguardhome
restart: unless-stopped
volumes:
- adguard-work:/opt/adguardhome/work
- adguard-conf:/opt/adguardhome/conf
ports:
# DNS
- "53:53/tcp"
- "53:53/udp"
# Web UI(初期設定用)
- "3001:3000/tcp"
# DNS-over-TLS(オプション)
- "853:853/tcp"
- "853:853/udp"
volumes:
adguard-work:
adguard-conf:
Web UI のポートを 3001:3000 としているのは、自環境で 3000 番ポートが他のサービスと競合していたため。
環境に応じて調整するとよい。
起動!
docker compose up -d
初期設定
ブラウザで http://[コンテナのIP]:3001 にアクセスして初期設定を行う。
-
管理インターフェース設定
設定が完了したら http://[コンテナのIP]:3001 でダッシュボードにアクセス可能になった!
Tailscale で AdGuard Home を使う設定
ここからが本番!Tailscale 経由で AdGuard Home の DNS を使えるように設定する。
-
Tailscale 管理画面 | DNS にアクセス
-
DNS タブを開く
-
Add nameserver → Custom を選択
-
Override local DNS を ON に設定
これを有効にすると、Tailscale に接続したデバイスは自動的に AdGuard Home の DNS を使うようになる。

動作確認
設定が完了したら、実際に外出先 (モバイル回線など) から試してみる。
- スマホに Tailscale アプリをインストール
- 同じアカウントでログイン
- VPN を有効化
- 広告が多いサイトにアクセスしてブロックされるか確認
AdGuard Home のダッシュボードでクエリログを見ると、外出先のデバイスからの DNS クエリが記録されているはず。これでどこからでも自宅の環境が使えるようになった!
おわり
Tailscale と AdGuard Home の組み合わせ、いかがでしたでしょうか。
従来の VPN 構築といえば、ポート開放、ファイアウォール設定、などと面倒な作業がありましたが、Tailscale を使えばほぼ設定不要で VPN が構築できてしまいました。さらに AdGuard Home を組み合わせることで、VPN 接続中に広告ブロックができるようになりました。
構築自体は Docker のおかげもあり非常に簡単だったので、
自宅サーバーをお持ちの方、ぜひ「どこからでも自宅」環境、試してみてください!
それでは良き Tailscale & AdGuard Home ライフを!







