−25%

Windows รายปี ถึง 31 ต.ค. ดูแพ็กเกจ

EQVPS

VPS สำหรับเข้าถึง Home Assistant จากระยะไกล

เข้าถึง Home Assistant ได้ทุกที่โดยไม่ต้องเปิดพอร์ตที่บ้าน: VPS ขนาดเล็กรัน WireGuard และ HTTPS แล้วให้บ้านของคุณเชื่อมต่อออกไปหา วิธีตั้งค่า ค่าใช้จ่าย และข้อจำกัด

คุณอยากเปิดแดชบอร์ด Home Assistant ขณะนั่งรถไฟ แต่เราเตอร์ไม่ยอม: ผู้ให้บริการใส่คุณไว้หลัง carrier-grade NAT หรือจะทำ port forwarding ได้ แต่คุณไม่อยากเปิดเครือข่ายทั้งบ้านสู่อินเทอร์เน็ตเพียงเพื่อเปิดไฟดวงเดียว VPS ขนาดเล็กแก้ได้ทั้งสองกรณี บ้านของคุณจะเชื่อมต่อออกไปหา VPS ผ่าน WireGuard และ VPS เป็นหน้าตาสาธารณะเพียงหนึ่งเดียว: มีโดเมนจริง ใบรับรองจริง และไม่มีอะไรในบ้านที่รอรับการเชื่อมต่อจากโลกภายนอก

การตั้งค่านี้ทำงานอย่างไร

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

VPS รันสองอย่าง: เซิร์ฟเวอร์ WireGuard และ Caddy ในฐานะ reverse proxy ที่บ้าน ไคลเอนต์ WireGuard (บนเครื่องที่รัน Home Assistant, Raspberry Pi หรือเราเตอร์) จะเปิดอุโมงค์ค้างไว้ เมื่อคุณเข้า https://ha.example.com Caddy จะส่งคำขอผ่านอุโมงค์ไปยัง 10.8.0.2:8123

สิ่งที่คุณต้องมี

1. เซิร์ฟเวอร์ 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

2. ฝั่งบ้าน

สร้าง peer บนเครื่อง Linux เครื่องใดก็ได้ในบ้าน (หรือใน add-on ไคลเอนต์ WireGuard ของ Home Assistant) ค่า 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 ให้ forward 10.8.0.2:8123 ไปยังเครื่อง HA ในเครือข่ายภายใน หรือง่ายกว่านั้นคือรันไคลเอนต์บนเครื่อง HA โดยตรง

3. 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 ต้องใช้

4. บอก Home Assistant ให้เชื่อถือ proxy

หากไม่ตั้งค่านี้ HA จะปฏิเสธคำขอที่ผ่าน proxy ใน 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 ไว้ เพราะ proxy ไม่ใช่ชั้นยืนยันตัวตน

บริการคลาวด์ทางการแบบเสียเงินของทีม Home Assistant ทำงานแบบเดียวกันโดยไม่ต้องดูแล และยังช่วยสนับสนุนโครงการด้วย หากคุณไม่อยากดูแลเซิร์ฟเวอร์เลย นั่นก็เป็นคำตอบที่ดีมาก เส้นทาง VPS จะคุ้มกว่าเมื่อคุณโฮสต์เองอยู่แล้ว อยากใช้โดเมนของตัวเอง หรืออยากนำบริการอื่นในบ้านมาอยู่หลังอุโมงค์เดียวกันในภายหลัง

คู่มือที่เกี่ยวข้อง

พร้อม deploy แล้วหรือยัง? จ่ายด้วยคริปโต ไม่ต้อง KYC — ใช้งานได้ในราวหนึ่งนาที

Deploy เลย →

FAQ

ทำไมต้องใช้ VPS แทนการ forward พอร์ตบนเราเตอร์?

อินเทอร์เน็ตบ้านจำนวนมากอยู่หลัง carrier-grade NAT (CGNAT) จึงไม่มีพอร์ตให้ forward และถึงจะมี การเปิด IP บ้านและเราเตอร์ออกสู่อินเทอร์เน็ตก็เป็นความเสี่ยงที่ไม่จำเป็น เมื่อใช้ VPS บ้านจะเป็นฝ่ายเปิดการเชื่อมต่อ WireGuard ขาออกเอง และสิ่งเดียวที่หันหน้าสู่อินเทอร์เน็ตคือเซิร์ฟเวอร์ขนาดเล็กที่คุณสร้างใหม่ได้ในไม่กี่นาที

ต้องใช้แพ็กเกจไหน?

Nano-IP ($8/เดือน) เหลือเฟือ เพราะมันแค่ส่งต่อทราฟฟิกและจบ HTTPS คุณต้องใช้แพ็กเกจที่มี IP เฉพาะ เนื่องจาก VPS ต้องรับ HTTPS ขาเข้าและพอร์ต UDP ของ WireGuard ส่วนแพ็กเกจ NAT ไม่รับการเชื่อมต่อขาเข้านอกจากพอร์ต SSH ของคุณ

VPS มองเห็นทราฟฟิก Home Assistant ของฉันไหม?

HTTPS จะจบที่ VPS ดังนั้นเซิร์ฟเวอร์ที่คุณควบคุมจะเห็นคำขอที่ถอดรหัสแล้วก่อนส่งผ่านอุโมงค์ ซึ่งเป็นรูปแบบความไว้วางใจเดียวกับ reverse proxy ทั่วไป ต่างกันตรงที่เครื่องนั้นเป็นของคุณ ไม่ว่าอย่างไรก็ควรเปิดการล็อกอินและการยืนยันตัวตนสองขั้นของ Home Assistant ไว้เสมอ

จะเพิ่มความหน่วงไหม?

เพิ่มขึ้นอีกหนึ่งฮอป จากบ้านในยุโรปไปยัง VPS ในเยอรมนีหรือฟินแลนด์โดยทั่วไปใช้เวลาไป-กลับ 10–40 ms ซึ่งแทบไม่รู้สึกสำหรับแดชบอร์ด สวิตช์ และภาพนิ่งจากกล้อง อาจรู้สึกได้เฉพาะตอนดูวิดีโอสด

ถ้า VPS ล่มจะเกิดอะไรขึ้น?

การเข้าถึงจากระยะไกลจะหยุด แต่ระบบอัตโนมัติในบ้านยังทำงานต่อ เพราะ Home Assistant ไม่เคยพึ่งพา VPS เลย ภายในบ้านทุกอย่างยังใช้งานผ่านที่อยู่ภายในได้ตามปกติ

ความคิดเห็น

ยังไม่มีความคิดเห็น เป็นคนแรกสิ

แสดงความคิดเห็น

ความคิดเห็นจะถูกตรวจสอบก่อนแสดง