利用阿里雲域名管理 API 實現 動態域名解析 ddns

動態域名解析,縮寫ddns,它不同於我們常用的DNS解析,而是專門用於對付那種沒有固定公網 IP 的服務器地址解析的。

典型的使用情況就是:自家寬帶構建小服務器,沒有固定IP,想要上線,除了寫腳本發郵件外,就只有ddns這一條路可以走了。

目前來說,國內最知名的可能就是出了名的難用不穩定的花生殼了。國外的話有一個dynu也很不錯。

現在阿里雲開放了 API,那麼我們能否使用阿里雲的 API 自行實現一個ddns呢?原理自然很簡單,自己實現一個小客戶端,然後定期獲取自身外網 IP 然後通過 API 去修改一下對應的域名解析就好了!

當然,已經有人做了客戶端這部分的工作(感謝),用 python 2 實現,所以,它是跨平台的。

這裡我們用 Ubuntu 16.04 的vps來做例子。

首先從 github 克隆項目到本地:

然後把配置文件拷貝到指定位置並編輯:

這裡,我們需要獲取阿里雲的 API 權限,獲取方法則是登錄阿里雲;

  1. 在後台首頁頂欄右邊找到“Access Keys”;
  2. 通過短信驗證之後點擊頁面右上邊按鈕創建一個新的 Access Key;
  3. 頁面所顯示的Access Key ID和 Access Key Secret 則為所需ID和Key。

獲取到 API 權限之後,我們再繼續來修改配置:

配置中的 間隔 無效不用管, [DomainRecord1] 則是你的域名字段,可以改成對應的名稱用來區別不同的子域而已,如果你要做多個子域的動態解析,那就寫多個字段即可。

針對這個字段裡, 為你的域名,主域; sub_domain 為要動態解析的子域,記得提前創建好,解析到任意 IP 即可。

比如說,要動態解析 home.logcg.com,那麼就按照上文的例子填寫。

類型 為解析記錄,比如 A 記錄(例子中的記錄);MX 記錄等。

最後 ID 留空,讓程序自行完成即可。

編輯完成之後,可以執行 Ubuntu的:/選擇/阿里雲-DDNS-客戶# 蟒蛇 DDNS.PY 來運行,第一次運行會得到錯誤 [錯誤] 必須 指定 記錄 ID. 沒關係,這是由於我們把 ID 字段留空的結果,程序會自行獲取完成,再執行一次試試看:

去後台頁面刷新看看,解析地址已經更新了。

自動同步

那麼,現在我們來利用 Ubuntu 的任務管理來實現域名的動態解析:

我們在文件內容末尾追加一行,輸入:

這句表示每隔一分鐘,進入程序目錄(我們之前克隆客戶端的目錄),然後執行程序進行一次更新。

好了,至此我們的 home.logcg.com 域名就成了動態解析✌️

本文由 落格博客 原創撰寫:落格博客 » 利用阿里雲域名管理 API 實現 動態域名解析 ddns

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/1768.html

由...出版 落格博客

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

加入對話

14 註釋

您的電子郵件地址不會被公開. 必填字段標 *

      1. 碰到新問題,,,,

        Ubuntu的@ Ubuntu的:/選擇/阿里雲,DDNS客戶端$蟒蛇ddns.py
        未能得到有效的域名記錄信息
        2016-07-08 23:30:14 [錯誤] 無法匹配遠程域記錄 http://www.wixxz.com
        2016-07-08 23:30:14 [錯誤] 失敗做備案首次同步:DomainRecord1

        在找原因中,,,,

  1. Git了你的Aliyun-DDNS-client這個東東在應用的時候 出現了以下錯誤,博主有空的話幫看看喲, 我郵箱3117821@qq.com

    Ubuntu的@ Ubuntu的:/選擇/阿里雲,DDNS客戶端$蟒蛇ddns.py
    追溯 (最新最後調用):
    文件 “ddns.py”, 線 21, 在
    從進口幫手DDNSHelper
    文件 “/選擇/阿里雲,DDNS客戶端/ helper.py”, 線 20, 在
    從utils的進口DDNSUtils
    文件 “/選擇/阿里雲,DDNS客戶端/ utils.py”, 線 20, 在
    進口要求
    導入錯誤: 無模塊命名請求

    結束