NameSilo的DDNS動態域名解析指令碼
我比較愚鈍,用Java和部分指令碼寫的。
一個實時檢測IP變化並更新DNS狀態的工具,適用於在NameSilo購買的域名。程式碼我放github了,地址:
背景
目前運營商給家庭寬頻的IP都是動態的,慶幸的是雖然IP地址不固定,但是卻是一個公網IP,所以我們可以購買一個域名,使用動態域名解析技術將域名解析到寬頻的IP。這樣就可以在家搭建各種服務並通過訪問固定的域名來訪問,而無需租用昂貴的公網伺服器。
想實現這個目的,你需要一臺一直執行的電腦來執行此程式,時刻檢測寬頻IP的變化。當然也需要自己解決路由器NAT對映的問題,但這不在本篇討論。
簡介
本程式通過訪問 https://202020.ip138.com/ 獲取家庭寬頻的公網IP地址,通過 https://www.namesilo.com/api/ 來查詢和更新DNS狀態。
配置
為了執行這個程式,你需要安裝Java,推薦jdk11。首次執行之前你需要配置_conf.txt檔案,填寫你從NameSilo獲取的api key,以及你的域名(不帶字首)。
Linux則要做額外配置,首先要確保_conf.txt是Linux格式,否則指令碼在拼接字串時會出錯。使用vi開啟,然後:set fileformat=unix,最後退出儲存。接著設定指令碼許可權 chmod 755 linux_runDDNS.sh
執行
Windows :直接雙擊win_runDDNS.bat
Linux :./linux_runDDNS.sh
在開機時啟動
Windows :將vbs檔案加入策略組
Linux :新增sh到服務,可以重定向輸出到檔案以檢查服務執行情況。
其他DDNS方案推薦
都是用到了curl傳送請求,把響應儲存到檔案中 ,再用指令碼處理字串。
Windows :https://www.v2ex.com/t/274392
Linux :https://github.com/pztop/namesilo_ddns
還有一個Windows powershell指令碼實現的
https://www.ctrol.cn/post/freesource/domain-host/05-25-cartev-4719.html