OpenWRT / iStoreOS 阿里騰訊雲 DDNS 動態域名解析配置完全指南 (2026 年最新版)
💡 個人觀點與核心價值: 玩家庭軟路由必須要折騰的一項核心技術,就是外網對內網的公網訪問。鑑於目前國內絕大多數家庭寬帶分配的都是“動態公網 IP”(即每次路由器重新撥號或過了 24 小時,寬帶的 IP 就會隨機更換),使得我們在外遊玩或辦公時,根本不可能通過記住一串變來變去的 IP 去訪問家裡群暉 NAS 或者路由器後臺。“DDNS(動態域名解析服務)”正是為解決這個痛點而生!通過藉助極其低廉乃至免費的雲服務商開放的 API,路由器一檢測到自己的 IP 變了,就會自動跑去雲端更新域名指向,自此你這輩子只需記住自己那幾塊錢買的域名,便能暢通無阻地“永遠連回家”。
騰訊雲設置
創建子域名
在 騰訊雲控制檯,選擇要使用的域名
在其下創建一個新的 A 記錄,如 dev,記錄值隨便填寫一個,後面會被 ddns 插件覆蓋為正確的值。
由於是免費套餐,TTL 最小隻能設置為 600 (單位秒,也就是十分鐘)。
📝 使用實例與避坑提醒: 實際上,在這個界面你直接把 IP 設為
1.1.1.1或者127.0.0.1都可以當做一個初始的“佔位符”。稍後當你的路由器成功發出了握手請求並攜帶真實的本地公網 IP 給騰訊雲時,它就會瞬間覆蓋掉這條初始偽裝。至於那個無法突破 10 分鐘的免費 TTL——別焦慮,這隻代表解析到全國各地的最慢生效同步時間,對於家庭寬帶平時好幾天才會被逼迫重撥一次的低頻斷網現狀來說,這十分鐘的空窗期幾乎感覺不到影響日常使用。
創建 API token
由於 ddns 插件是通過 API token 來執行 dns 記錄更新,因此需要提前創建 API token。
注意: 使用的 DNSPod Token,不是 騰訊雲 API 密鑰
創建密鑰
ID :383XXX
Token :3de14556b8a8bXXXXXXXXXXXXXX阿里雲設置
創建子域名
在其下創建一個新的 A 記錄,如 dev,記錄值隨便填寫一個,後面會被 ddns 插件覆蓋為正確的值。
創建Access Key
- 登錄阿里雲,找到
AccessKey管理 - 你可以使用管理賬號的 AccessKey,但為安全起見,本案例使用
子用戶AccessKey。 - 創建子用戶,填入登錄名稱和顯示名稱,訪問方式勾選
Open api調用訪問。 - 創建完成後,點擊
AccessKey,複製AccessKey ID和AccessKey Secret。
添加權限
選擇 AliyunDNSFullAccess,並添加。
💡 安全權限管控原理: 為什麼這裡在阿里雲建議大費周折去建一個專門的“子用戶 AccessKey”,而不直接圖省事抄官方原本主賬號的呢?設想一個可怕的場景:如果你哪天這個路由器的插件文件被洩露(可能是發固件給朋友或者是外網被直接爆破了),因為主賬號 AccessKey 往往具有阿里雲下雲服務器 ECS、雲盤清空乃至全部計費賬單的生殺大權,你可能會遭受無可估量的損失!所以,對於任何需要提供授權給家用路由折騰環境的雲端憑證,請永遠秉公採用新建一個只有基礎 DNS 查詢修改權限“子賬戶”的最安全做法!
設置openwrt/istore os
進入 openwrt/istore os 管理後臺 — 服務 — 動態DNS — myddns_ipv4 — 編輯
基本設置
- 查詢主機名: 設置的子域名 如:
dev.theojs.cn - DDNS服務提供商: 騰訊雲-
dnspod/ 阿里雲-aliyun.com - 域名: 設置的子域名 如:
dev.theojs.cn - 用戶名: 騰訊雲-
ID/ 阿里雲-AccessKey ID - 密碼: 騰訊雲-
Token/ 阿里雲-AccessKey Secret
高級設置
選擇接口和WAN口作為更新源,用於獲取和更新你本地的公網地址。如果你無法通過接口獲得公網地址,也可以使用URL方式,二選一。
📝 基礎架構排錯實例: 這一步非常考驗你家的整體拓撲環境。如果你家使用的是光貓撥號(光貓是路由器角色),而你這臺 OpenWRT 只是由於接在光貓下導致獲取到了一個如
192.168.1.5這樣的純內網級聯虛假公網,此時不管接口選什麼,提交出去的都會是內網 IP,導致永遠無法從外網訪問!這種情況下你往往必須選擇“URL方式”——它是通過發起一次 HTTP 請求到一個外網服務器,讓外網服務器把視角看到的你們家真正的“公網大門”IP 提取返回回來(俗稱:拿第三方視角來認出你自己)。當然,最徹底一勞永逸的方法還是去把寬帶光貓找裝維師傅改成橋接模式,讓軟路由自身直接撥號。
驗證
過10分鐘後,應該就可以在域名解析中看到之前的 1.1.1.1 已經自動更新為你的公網IP地址。
診斷
Forbidden
Rejected request from RFC1918 IP to public server address .
解決方法
ssh連接到openwrt
# 編輯文件
vi /etc/config/uhttpd將 option rfc1918_filter 1 改為 option rfc1918_filter 0
# 執行重啟
/etc/init.d/uhttpd restart✨ 排錯原理追溯與技術總結: RFC1918 是什麼? 它是國際網絡協議中定義保留的所有私人內網 IP 段(如
192.168.x.x,10.x.x.x)的專屬規範防範。OpenWRT 系統自帶的網頁宿主引擎(uhttpd)極其講究安全隔離,默認對來自外部的 HTTP 數據頭有極強的“防禦偏執狂”機制:當我們把外網域名解析回家並在瀏覽器直接用公網 IP 或剛剛弄好的 DDNS 域名意圖打開路由器後臺時,uhttpd 一看包頭傳來的地址不屬於嚴格內部定義的乾淨範圍且存在跨域風險,就會甩給你一句刺眼的Rejected request from RFC1918,並將你當做黑客請求直接拒絕(Forbidden)! 因此,將其默認攔截開關從1這個開啟狀態強制關成0,也就成了所有通過 DDNS 外網訪問家中軟路由後臺必練的排障基本功了。學會了這一招,你的 DDNS 之旅才算徹底暢通無阻!