−25%

Windows 연간 결제, 10월 31일까지. 요금제 보기

EQVPS

Home Assistant 원격 접속용 VPS

집에서 포트를 열지 않고 어디서나 Home Assistant에 접속하세요. 작은 VPS가 WireGuard와 HTTPS를 맡고, 집이 VPS로 먼저 연결합니다. 구성, 비용, 한계를 정리했습니다.

기차 안에서 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에서는 두 가지를 실행합니다. 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의 비밀번호와 2단계 로그인은 켜 두세요. 프록시는 인증 계층이 아닙니다.

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 자체의 로그인과 2단계 인증은 켜 두세요.

지연이 늘어나나요?

한 홉이 추가됩니다. 유럽의 집에서 독일이나 핀란드의 VPS까지는 보통 왕복 10~40 ms로, 대시보드, 스위치, 카메라 스냅샷에서는 체감되지 않습니다. 실시간 영상에서만 느낄 수 있습니다.

VPS가 멈추면 어떻게 되나요?

원격 접속만 멈추고 집 안의 자동화는 계속 동작합니다. Home Assistant 자체는 처음부터 VPS에 의존하지 않았기 때문입니다. 집 안에서는 예전처럼 로컬 주소로 모든 것이 동작합니다.

댓글

아직 댓글이 없습니다. 첫 번째가 되세요.

댓글 남기기

댓글은 표시되기 전에 검토됩니다.