免費的 DDNS Duck DNS 簡單快速設定方式

Duck DNS 是一個免費的動態 DNS 服務,讓使用者將自己的網域(如 myhome.duckdns.org)指向變動的 Internet IP,(HiNET) 適合自架伺服器、遠端存取等用途,且支援多平台更新與簡易設定。相較於 No-IP 可省去每個月都要再更新一次的困擾。

  • 網站https://www.duckdns.org
  • 限制條件
    • 免費註冊。
    • 每個帳號可建立最多 5 個子網域
    • 不支援自訂域名(只能使用 yourname.duckdns.org)。
  • 更新方式:提供範例腳本(Linux、Windows、路由器等)。
  • 優點
    • 簡單穩定。
    • 支援多平台。
    • 社群活躍。

前往 DuckDNS 網站,並且使用 Google 登入

前往 https://www.duckdns.org/ 到 DuckDNS 的首頁,就會看到 DuckDNS 提供了一些登入方式,用右上方 Google 登入。

第一次登入完成後會要求完成 reCaptcha 驗證,依照指示點擊及即可。

duck dns login
duckdns reCaptcha

設定網域

由於 DuckDNS 只能使用 duckdns.org 當作網域。所以你得選一個你自已喜歡且尚未被選走的網域。如 yourname.duckdns.org 。這裡的 yourname 就是你選的子網域。

在方區塊中,輸入自己喜歡的子網域,並且按下 add doman 即可。之後再更新 current ip (選項)。不作也行等一下可用程式自動更新。

duck dns add domain

記下子網域名字跟 token

如圖所示。等一下會用到

duck dns token

程式自動更新 IP

因為我使用的是 Allwinner H3 的 SBC . 作業系統是 Linux . 請用 root 登入並建立一個 bash 的 script 檔。如

vi ~/duckdns_update.sh

把下方程式碼貼上。並記得改 DOMAIN 跟 TOKEN 那兩行。換上 DuckDNS 給你的資料

#!/bin/bash

# 設定參數
DOMAIN="your-subdomain"  # 你的 DuckDNS 子網域,例如 "yourname"
TOKEN="your-duckdns-token"  # DuckDNS 給的 token

# IP 快取檔案路徑
IP_FILE="/tmp/duckdns_current_ip.txt"

# 取得目前的公網 IP(使用 ipify)
CURRENT_IP=$(curl -s https://api.ipify.org)

# 如果取得不到 IP,直接退出
if [[ -z "$CURRENT_IP" ]]; then
  echo "無法取得目前 IP"
  exit 1
fi

# 如果檔案不存在,建立一個空檔案
if [[ ! -f "$IP_FILE" ]]; then
  echo "" > "$IP_FILE"
fi

# 讀取上次紀錄的 IP
LAST_IP=$(cat "$IP_FILE")

# 比對 IP 是否有變更
if [[ "$CURRENT_IP" == "$LAST_IP" ]]; then
  echo "IP 無變更($CURRENT_IP),不更新 DuckDNS"
  exit 0
fi

# 嘗試更新 DuckDNS
UPDATE_URL="https://www.duckdns.org/update?domains=${DOMAIN}&token=${TOKEN}&ip=${CURRENT_IP}"
RESPONSE=$(curl -s "$UPDATE_URL")

if [[ "$RESPONSE" == "OK" ]]; then
  echo "DuckDNS 更新成功:$CURRENT_IP"
  echo "$CURRENT_IP" > "$IP_FILE"
else
  echo "DuckDNS 更新失敗:$RESPONSE"
  exit 1
fi

龻更權限

chmod +x duckdns_update.sh

加入 crontab 自動執行(例如每 5 分鐘)

crontab -e
*/5 * * * * ~/duckdns_update.sh >> ~/duckdns.log 2>&1

完成。之後就會每 5 分檢查一下。如需要就會更新 DuckDNS 上的 IP .

延伸閱讀

blog.ocam.live
blog.ocam.live

關注科技新聞、SEO、人工智慧、電玩模擬器、程式設言、與 IT 日常等議題,深入簡出文章的說明並持續追蹤相關新聞的發展與報導。