−25%

Windows 年払い、10月31日まで。 プランを見る

EQVPS

Home Assistant にリモートアクセスするための VPS

自宅のポートを開けずにどこからでも Home Assistant へ。小さな VPS が WireGuard と HTTPS を担当し、自宅側から接続します。構成、費用、制約を解説します。

電車の中から Home Assistant のダッシュボードを開きたい。ところがルーターが許してくれません。プロバイダーにキャリアグレード NAT の内側に置かれているか、ポートフォワーディングはできても電気を一つつけるために家のネットワーク全体をインターネットにさらしたくない、という状況です。小さな VPS なら両方を解決できます。自宅は WireGuard で VPS へ外向きに接続し、公開される顔は VPS だけ。本物のドメインと本物の証明書があり、自宅側には外の世界を待ち受けるものが何もありません。

構成の仕組み

phone ──HTTPS──> VPS (Caddy :443) ──WireGuard──> Home Assistant :8123 at home
                       ▲
              home box dials out on UDP 51820

VPS では 2 つのものを動かします。WireGuard サーバーと、リバースプロキシとしての Caddy です。自宅では WireGuard クライアント(Home Assistant のホスト、Raspberry Pi、またはルーター上)がトンネルを張り続けます。https://ha.example.com にアクセスすると、Caddy がリクエストをトンネル経由で 10.8.0.2:8123 に渡します。

必要なもの

1. VPS 上の WireGuard サーバー

apt update && apt install -y wireguard caddy
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub
chmod 600 /etc/wireguard/server.key

cat > /etc/wireguard/wg0.conf <<EOF
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = $(cat /etc/wireguard/server.key)

[Peer]
# the home side
PublicKey = HOME_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
EOF

systemctl enable --now wg-quick@wg0
ufw allow 51820/udp && ufw allow 80,443/tcp

2. 自宅側

自宅の任意の Linux マシン(または Home Assistant の WireGuard クライアントアドオン)でピアを作成します。keepalive が重要で、自宅ルーターの NAT を越えてトンネルを開いたままにしてくれます。

[Interface]
Address = 10.8.0.2/24
PrivateKey = HOME_PRIVATE_KEY

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = ha-vps.example.com:51820
AllowedIPs = 10.8.0.1/32
PersistentKeepalive = 25

WireGuard クライアントが Home Assistant とは別のマシンで動いている場合は、10.8.0.2:8123 を LAN 上の HA ホストに転送してください。もっと簡単なのは、クライアントを HA ホスト上で直接動かすことです。

3. Caddy で HTTPS

cat > /etc/caddy/Caddyfile <<'EOF'
ha.example.com {
    reverse_proxy 10.8.0.2:8123
}
EOF
systemctl reload caddy

Caddy は証明書を自動で取得し、Home Assistant アプリが頼りにしている WebSocket 接続も処理します。

4. Home Assistant にプロキシを信頼させる

これがないと HA はプロキシ経由のリクエストを拒否します。configuration.yaml に次を追加します。

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 10.8.0.1

Home Assistant を再起動し、https://ha.example.com を開いて、その URL をモバイルアプリの外部アドレスに設定します。

正直なトレードオフ

HTTPS は VPS で終端するので、そのサーバーはトンネルに入る前のダッシュボード通信を平文で見ることになります。サーバーはあなたのものであり、それこそが狙いですが、自宅ネットワークの一部として扱ってください。SSH は鍵認証のみ、アップデートは有効、ほかには何も動かさない。Home Assistant のパスワードと二要素ログインは有効のままにしておきましょう。プロキシは認証レイヤーではありません。

Home Assistant チームの公式有料クラウドサービスは、同じことを保守なしで実現し、プロジェクトの資金にもなります。サーバーをまったく運用したくないなら、それは十分に良い答えです。VPS の道が勝るのは、すでにセルフホストしている、独自ドメインを使いたい、あるいは将来ほかの自宅サービスも同じトンネルの後ろに置きたい場合です。

関連ガイド

デプロイの準備はできましたか?暗号通貨で支払い、KYC不要 — 約1分でオンライン。

今すぐデプロイ →

FAQ

ルーターでポートフォワーディングする代わりに VPS を使う理由は?

多くの家庭用回線はキャリアグレード NAT(CGNAT)の内側にあり、転送できるポートがそもそもありません。仮にあっても、自宅の IP とルーターをインターネットにさらすのは不要なリスクです。VPS を使えば自宅側から WireGuard の外向き接続を張り、インターネットに面するのは数分で作り直せる小さなサーバーだけになります。

どのプランが必要ですか?

Nano-IP(月額 $8)で十分です。トラフィックを転送して HTTPS を終端するだけだからです。VPS は受信の HTTPS と WireGuard 用の UDP ポートを受け付ける必要があるため、専用 IP 付きのプランが必要です。NAT プランは SSH ポート以外の受信接続を受け付けません。

VPS から Home Assistant の通信は見えますか?

HTTPS は VPS で終端するため、あなたが管理するサーバーはトンネルに送る前に復号されたリクエストを見ることになります。これはどのリバースプロキシでも同じ信頼モデルで、違いはそのマシンがあなたのものだという点です。いずれにせよ、Home Assistant 自体のログインと二要素認証は有効にしておいてください。

遅延は増えますか?

経由が 1 ホップ増えます。ヨーロッパの自宅からドイツやフィンランドの VPS までは往復 10〜40 ms 程度が一般的で、ダッシュボード、スイッチ、カメラの静止画では体感できません。気づく可能性があるのはライブ映像くらいです。

VPS が停止したらどうなりますか?

リモートアクセスが止まるだけで、自宅のオートメーションは動き続けます。Home Assistant 自体は VPS に依存していないからです。自宅内ではこれまで通りローカルアドレスで使えます。

コメント

まだコメントはありません。最初になりましょう。

コメントを残す

コメントは表示される前にモデレートされます。