NameSilo的DDNS動態域名解析腳本





一個實時檢測IP變化並更新DNS狀態的工具,適用於在NameSilo購買的域名,如果你的域名是在其他商家購買的,修改為商家的api就行。GitHub項目地址:

https://github.com/Charles94jp/NameSoli-DDNS

我使用的語言是Java,其實用腳本寫更方便,shell、powershell、python都可以



一、背景

目前運營商給家庭寬帶的IP都是動態的,慶幸的是雖然IP地址不固定,但分配到家庭路由器的卻是一個實實在在的公網IP,所以我們只需使用路由器NAT映射即可在公網訪問家庭的設備。我們路由器映射22端口就能遠程家里的linux,映射445+3389端口就能用win10自帶遠程桌面遠程家里的windows。如下圖

為解決公網IP的變動,可以購買一個域名,使用DDNS(Dynamic Domain Name Server,動態域名服務)將域名解析到寬帶的IP。這樣就可以在家搭建各種服務並通過訪問固定的域名來訪問,而無需租用昂貴的公網服務器

想實現這個目的,你需要一台一直運行的電腦來運行此DDNS程序



二、簡介

本程序通過訪問 https://202020.ip138.com/ 獲取家庭寬帶的公網IP地址,通過 https://www.namesilo.com/api/ 來查詢和更新DNS狀態。如下圖



三、配置

為了運行這個程序,你需要安裝Java,推薦jdk8。首次運行之前你需要配置_conf.txt文件,填寫你從NameSilo獲取的api key,以及你的域名。還有一項可選的配置——程序去檢查IP是否變動的頻率。



四、運行

Windows :直接雙擊win_runDDNS.bat

Linux       :chmod +x DDNS && ./DDNS start



五、在開機時自動啟動

Windows :將vbs文件加入策略組

Linux       :首先vi DDNS在其中配置好java環境變量以及當前腳本文件、jar包所在目錄,接着拷貝文件並注冊服務

cp DDNS /etc/init.d/DDNS
chkconfig --add /etc/init.d/DDNS
# 查看服務是否注冊成功
chkconfig --list
# reboot即可重啟,檢驗是否自啟成功
# 服務操作
service DDNS status  # 查看狀態
service DDNS start   # 啟動
service DDNS stop    # 停止
service DDNS restart # 重啟



六、其他DDNS方案推薦

都是用到了curl發送請求,把響應保存到文件中 ,再用腳本處理字符串。單個文件就能解決,不過腳本語言特別是Windows的batch語法不是很友好,一般做運維的可能比較熟悉腳本語言。

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




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM