[指南] DuckDNS 搭配 Home Assistant 讓外網可以存取

章節連結

DuckDNS 是一個免費但有上限 5 個的 DDNS 服務。如此一來你就不需要申請固定 IP,可以在維持浮動的情況下從外網連入家中區域網路。

guide-duckdns-match-link-home-assistant-get-1 dns


內容

[ 網址 ]: https://www.duckdns.org/

1. DuckDNS 登入後,輸入你想要呈現的子域名,並按下 Add Domain
2. 如果 OK 的話,畫面上就會呈現兩個輸入區,選擇 currentIP 按下 Update 就算填入完成了。因此,你會需要在「家中的區網」執行這件事,才能成功抓到當下區網的對外 IP
3. 畫面上的 token 請保留,等下要複製貼上

guide-duckdns-match-link-home-assistant-get-2 接下來分為 2 個部分:

Home Assistant

1. 設定 -> 附加元件 -> 附加元件商店 -> DuckDNS 安裝
2. 其設定檔內,將先前設定的 domain, 取得的 token 填入
3. Let’s Encrypt 的設定如下:

accept_terms: true
algo: secp384r1
certfile: fullchain.pem
keyfile: privkey.pem

guide-duckdns-match-link-home-assistant-get-3

4. 填寫完成後,將 DuckDNS 啟用。接著等 3 ~ 5 分鐘,等 https 和 DNS 設定生效

5. 利用 File Editor 或是 Studio Code Server,將 homeassistant 目錄下的 configuraion.yaml 內新增 http 相關設定,讓其可以自動跳轉成 https,同時加上憑證

guide-duckdns-match-link-home-assistant-get-4


路由器 Router 設定

由於各家的介面設定都不同,就僅提供關鍵字「通訊埠轉發」供查詢。

概念化作現實比喻像是:

1. 外人找到一棟帶有門牌號碼的大樓,告知管理員一個代號
2. 管理員看到代號,告知你前往內部對應的某個場所

若外部 port 設定為 80 (http), 443 (https),那你的網域後方可以不用明寫 port。若你想要指定某一個 port ( 如 4578 ) 才能轉發到內網的 home assistant,也避免他人輕易猜到,那你的網址就會是:https://<sub-domain>.duckdns.org:4578

所以你的路由器轉送設定就是一組:
外部:4578
內部:8123
套用內部 IP:你的 home assistant 內部分配 ip

home assistant 的分配到的 IP 建議設置為固定,避免日後更改造成連線不到


參考資料

1. Home Assistant使用DuckDNS自定義子域名及採用SSL
2. [教學] Home Assistant 簡易遠端連線教學 – DuckDNS

按讚加入粉絲團

延伸閱讀