Anda ingin membuka dasbor Home Assistant dari dalam kereta. Router menolak: penyedia internet menaruh Anda di balik carrier-grade NAT, atau port forwarding sebenarnya bisa, tetapi Anda enggan membuka seluruh jaringan rumah ke internet hanya untuk menyalakan lampu. VPS kecil menyelesaikan keduanya. Rumah Anda terhubung keluar ke VPS lewat WireGuard, dan VPS menjadi satu-satunya wajah publik: dengan domain sungguhan, sertifikat sungguhan, dan tidak ada apa pun di rumah yang mendengarkan dunia luar.
Cara kerja penyiapannya
phone ──HTTPS──> VPS (Caddy :443) ──WireGuard──> Home Assistant :8123 at home
▲
home box dials out on UDP 51820
VPS menjalankan dua hal: server WireGuard dan Caddy sebagai reverse proxy. Di rumah, klien WireGuard (di host Home Assistant, Raspberry Pi, atau router) menjaga terowongan tetap terbuka. Saat Anda membuka https://ha.example.com, Caddy meneruskan permintaan melalui terowongan ke 10.8.0.2:8123.
Yang Anda perlukan
- Paket dengan IP khusus. VPS harus menerima 443 dan UDP 51820 yang masuk. Nano-IP seharga $8 per bulan sudah lebih dari cukup: ia memindahkan beberapa kilobita lalu lintas dasbor tanpa kesulitan. Paket NAT tidak menerima koneksi masuk selain port SSH pribadi Anda (cara kerja NAT di sini).
- Domain dengan record A yang mengarah ke IP VPS.
- Klien WireGuard di rumah yang dapat menjangkau Home Assistant di jaringan lokal.
1. Server WireGuard di 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
2. Sisi rumah
Buat peer di mesin Linux mana pun di rumah (atau di add-on klien WireGuard untuk Home Assistant). Keepalive penting: ia menjaga terowongan tetap terbuka melewati NAT router rumah Anda.
[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
Jika klien WireGuard berjalan di mesin yang berbeda dari Home Assistant, teruskan 10.8.0.2:8123 ke host HA di jaringan lokal; atau, lebih sederhana, jalankan klien langsung di host HA.
3. HTTPS dengan Caddy
cat > /etc/caddy/Caddyfile <<'EOF'
ha.example.com {
reverse_proxy 10.8.0.2:8123
}
EOF
systemctl reload caddy
Caddy mengambil sertifikat secara otomatis dan menangani koneksi WebSocket yang diandalkan aplikasi Home Assistant.
4. Minta Home Assistant memercayai proxy
Tanpa ini, HA menolak permintaan yang datang melalui proxy. Di configuration.yaml:
http:
use_x_forwarded_for: true
trusted_proxies:
- 10.8.0.1
Mulai ulang Home Assistant, buka https://ha.example.com, lalu atur URL tersebut sebagai alamat eksternal di aplikasi seluler.
Kompromi yang jujur
HTTPS berakhir di VPS, jadi server itu melihat lalu lintas dasbor dalam bentuk teks biasa sebelum masuk ke terowongan. Server itu milik Anda, dan justru itulah intinya, tetapi perlakukan ia sebagai bagian dari jaringan rumah: hanya kunci SSH, pembaruan aktif, tidak ada hal lain yang berjalan di sana. Tetap aktifkan kata sandi Home Assistant dan login dua faktor; proxy bukanlah lapisan autentikasi.
Layanan cloud resmi berbayar dari tim Home Assistant melakukan hal yang sama tanpa perawatan sama sekali dan ikut mendanai proyeknya. Jika Anda sama sekali tidak ingin mengelola server, itu jawaban yang sangat baik. Jalur VPS unggul jika Anda sudah menghosting sendiri, ingin memakai domain sendiri, atau kelak ingin menaruh layanan rumah lain di balik terowongan yang sama.
Panduan terkait
- Menyiapkan VPN WireGuard di VPS: panduan WireGuard lengkap
- Reverse proxy Nginx dengan HTTPS: jika Anda lebih suka Nginx daripada Caddy
- Mengamankan VPS baru: lakukan ini terlebih dahulu di setiap mesin yang menghadap internet
Komentar
Belum ada komentar. Jadilah yang pertama.