−25%

روی پرداخت سالانه Windows، تا ۳۱ اکتبر. مشاهده پلن‌ها

EQVPS

VPS برای دسترسی از راه دور به Home Assistant

بدون باز کردن پورت در خانه، از هر جا به Home Assistant دسترسی داشته باشید: یک VPS کوچک WireGuard و HTTPS را اجرا می‌کند و خانه به آن وصل می‌شود. راه‌اندازی، هزینه، محدودیت‌ها.

می‌خواهید داشبورد Home Assistant را در قطار باز کنید. روتر اجازه نمی‌دهد: اپراتور شما را پشت CGNAT گذاشته، یا فوروارد پورت از نظر فنی ممکن است اما نمی‌خواهید برای روشن کردن یک لامپ کل شبکه خانه را به اینترنت آویزان کنید. یک VPS کوچک هر دو را حل می‌کند. خانه شما از طریق WireGuard به آن بیرون زنگ می‌زند و VPS تنها چهره عمومی است: با دامنه واقعی، گواهی واقعی و بدون اینکه چیزی در خانه به دنیا گوش بدهد.

این راه‌اندازی چطور کار می‌کند

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

VPS دو چیز اجرا می‌کند: یک سرور WireGuard و Caddy به عنوان ریورس‌پراکسی. در خانه یک کلاینت WireGuard (روی میزبان Home Assistant، یک Raspberry Pi یا روتر) تونل را باز نگه می‌دارد. وقتی به https://ha.example.com می‌روید، Caddy درخواست را از تونل به 10.8.0.2:8123 می‌فرستد.

چه چیزهایی لازم دارید

۱. سرور WireGuard روی VPS

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

۲. سمت خانه

روی هر دستگاه لینوکسی در خانه (یا در افزونه کلاینت WireGuard برای Home Assistant) همتا (peer) را بسازید. تنظیم 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 را به میزبان HA در شبکه محلی فوروارد کنید؛ یا ساده‌تر، کلاینت را روی خود میزبان HA اجرا کنید.

۳. HTTPS با Caddy

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

Caddy گواهی را خودکار می‌گیرد و اتصال WebSocket را که اپلیکیشن Home Assistant به آن متکی است مدیریت می‌کند.

۴. به Home Assistant بگویید به پراکسی اعتماد کند

بدون این کار، HA درخواست‌های پراکسی‌شده را رد می‌کند. در configuration.yaml:

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 10.8.0.1

Home Assistant را ری‌استارت کنید، https://ha.example.com را باز کنید و این آدرس را به عنوان آدرس خارجی در اپلیکیشن موبایل تنظیم کنید.

بده‌بستان‌ها، صادقانه

HTTPS روی VPS تمام می‌شود، پس آن سرور ترافیک داشبورد شما را پیش از ورود به تونل بدون رمز می‌بیند. سرور مال خودتان است و اصل ماجرا همین است، اما با آن مثل بخشی از شبکه خانه رفتار کنید: فقط کلید SSH، به‌روزرسانی‌ها روشن، و هیچ چیز دیگری روی آن اجرا نشود. رمز عبور و ورود دومرحله‌ای خود Home Assistant را روشن نگه دارید؛ پراکسی لایه احراز هویت نیست.

سرویس ابری رسمی و پولی تیم Home Assistant همین کار را بدون هیچ نگهداری انجام می‌دهد و هزینه پروژه را هم تأمین می‌کند. اگر ترجیح می‌دهید اصلاً سرور اداره نکنید، آن پاسخ کاملاً خوبی است. راه VPS وقتی برنده است که از قبل خودمیزبانی می‌کنید، دامنه خودتان را می‌خواهید، یا قصد دارید بعداً سرویس‌های دیگر خانه را هم پشت همین تونل بگذارید.

راهنماهای مرتبط

آماده استقرار؟ با رمزارز بپرداز، بدون KYC — در حدود یک دقیقه فعال می‌شود.

← همین حالا مستقر کن

سؤالات متداول

چرا VPS به جای فوروارد کردن پورت روی روتر؟

بسیاری از اتصال‌های خانگی پشت NAT در سطح اپراتور (CGNAT) هستند و اصلاً پورتی برای فوروارد وجود ندارد. حتی وقتی هست، در معرض اینترنت گذاشتن IP خانه و روتر ریسکی است که لازم ندارید. با VPS خانه یک اتصال خروجی WireGuard برقرار می‌کند و تنها چیزی که رو به اینترنت است یک سرور کوچک است که در چند دقیقه دوباره ساخته می‌شود.

به کدام پلن نیاز دارم؟

Nano-IP (۸ دلار در ماه) کاملاً کافی است: فقط ترافیک را عبور می‌دهد و HTTPS را خاتمه می‌دهد. به پلنی با IP اختصاصی نیاز دارید چون VPS باید HTTPS ورودی و یک پورت UDP برای WireGuard را بپذیرد؛ پلن‌های NAT به جز پورت SSH شما اتصال ورودی نمی‌پذیرند.

آیا VPS ترافیک Home Assistant من را می‌بیند؟

HTTPS روی VPS خاتمه می‌یابد، پس سروری که در اختیار شماست درخواست‌ها را پیش از فرستادن به تونل رمزگشایی‌شده می‌بیند. این همان مدل اعتماد هر ریورس‌پراکسی است؛ تفاوت در این است که سرور مال خودتان است. در هر حال ورود و احراز هویت دومرحله‌ای خود Home Assistant را فعال نگه دارید.

آیا تأخیر اضافه می‌کند؟

یک پرش اضافه. از خانه‌ای در اروپا تا VPS در آلمان یا فنلاند معمولاً ۱۰ تا ۴۰ میلی‌ثانیه رفت‌وبرگشت است که در داشبوردها، کلیدها و عکس‌های دوربین حس نمی‌شود. تنها جایی که ممکن است حسش کنید پخش زنده ویدیو است.

اگر VPS از کار بیفتد چه می‌شود؟

دسترسی از راه دور قطع می‌شود؛ اما اتوماسیون‌های خانه کار می‌کنند، چون خود Home Assistant هیچ‌وقت به VPS وابسته نبوده است. داخل خانه همه‌چیز مثل قبل روی آدرس محلی کار می‌کند.

نظرات

هنوز نظری نیست. اولین نفر باشید.

یک نظر بگذارید

نظرات پیش از نمایش بررسی می‌شوند.