自建免費域名(US.KG)、託管和實做 Cloudflare DDNS

自建免費域名(US.KG)、託管和實做 Cloudflare DDNS – 教學

前言

💡 用途:申請免費的 US.KG 域名,並將其託管到 Cloudflare DDNS 功能,讓動態 IP 也能穩定對應您的域名,適合有主機需求、希望能節省成本的使用者。
實做:使用 Cloudflare API 實現 Cloudflare DDNS (動態域名系統),通過 API 來自動更新 DNS 記錄,使域名始終指向正確的動態 IP。
 

隨著自建網站遠端服務的需求增加,穩定可靠的網域名稱系統變得越來越重要,US.KG 提供的免費域名服務不僅讓使用者能夠以零成本獲得專業的網域名稱,更可透過 Cloudflare DDNS 功能,實現動態IP的即時更新

本教學將帶領您完成從 US.KG 免費域名申請Cloudflare 託管設定自動化 DDNS 腳本的建置過程,透過整合這些服務,即使是使用動態IP的家用網路環境,也能建立起穩定的網路服務存取點,特別適合想要架設個人網站、遠端服務或測試環境的使用者,讓您在節省成本的同時,也能享有專業級的網域名稱服務。

US.KG 官網

申請免費域名

  1. 開啟下列網址,進行免費域名註冊
    US.KG 免費域名註冊
      US.KG 免費域名註冊-2

    💡 範例:
    用戶名:andyliu
    法定全名(名在前、姓在後):John Fitzpatrick
    郵件位址:[email protected]
    電話號碼:+1-7046275347
    住家地址(街道地址、城市、州、郵编、國家):4406 Snyder Avenue, Charlotte, NC 28202, United States
    密碼:123456789@
    確認密碼:123456789@
    驗證你是人類:勾選
    輸入完成後點選「註冊

      身份資訊生成器
      美國地址生成器
    美國地址生成器-2

  2. 出現「Successful」(成功)!訊息:驗證電子郵件已傳送,請檢查您的郵箱,如果找不到,請檢查您的垃圾郵件資料夾或重試。
    出現「Successful」(成功)!訊息 
  3. 到信箱的驗證郵件內點選「verification email」(信箱驗證網頁連結)
    到信箱的驗證郵件內點選「verification email」(信箱驗證網頁連結)

    到信箱的驗證郵件內點選「verification email」(信箱驗證網頁連結)-2

  4. 出現「Registration successful」(註冊成功)!
    出現「Registration successful」(註冊成功)! 
  5. 開啟下列網址,進行登入驗證,輸入「E-Mail」(郵件位址)後,點選「Next」(下一步)
    US.KG 註冊網頁

    US.KG 註冊網頁-2

  6. 接著輸入「Password」(登入密碼),「勾選」驗證您是人類,再點選「Login」(登入)
    接著輸入「Password」(登入密碼),「勾選」驗證您是人類,再點選「Login」(登入) 
  7. 驗證方法選擇「GitHub KYC Verification」(GitHub KYC 驗證),接著用滑鼠右鍵打開中間的網頁連結
    驗證方法選擇「GitHub KYC Verification」(GitHub KYC 驗證),接著用滑鼠右鍵打開中間的網頁連結

    驗證方法選擇「GitHub KYC Verification」(GitHub KYC 驗證),接著用滑鼠右鍵打開中間的網頁連結-2

  8. 點選右上角的「Sign in」(登入),輸入GitHub的帳號和密碼後,點選下方的「Sign in」(登入)
     

     https://github.com/DigitalPlatDev/FreeDomain 

    點選右上角的「Sign in」(登入),輸入GitHub的帳號和密碼後,點選下方的「Sign in」(登入)

    點選右上角的「Sign in」(登入),輸入GitHub的帳號和密碼後,點選下方的「Sign in」(登入)-2

  9. 輸入信箱驗證郵件中的「Device Verification Code」(設備驗證碼),再點選下方的「Verify」(驗證)
    輸入信箱驗證郵件中的「Device Verification Code」(設備驗證碼),再點選下方的「Verify」(驗證)

    輸入信箱驗證郵件中的「Device Verification Code」(設備驗證碼),再點選下方的「Verify」(驗證)-2

  10. 點選右上角的Star小星星(☆)
    點選右上角的Star小星星(☆)

  11. 點選左下角的「Proceed to GitHub」(前往GitHub)
    US.KG 註冊網頁

    點選左下角的「Proceed to GitHub」(前往GitHub)

  12. 標題預設會帶入 US.KG 的用戶名,步驟:
    1. 填寫「Username」(用戶名,和標題一致),例如:myname
    2. 填寫「Reason for Register」(註冊用途),例如:I want to create a blog
    3. 點選下方的「Submit new issue」(提交新問題)

    標題預設會帶入 US.KG 的用戶名

  13. 「勾選」全部項目,完成後在此頁面等待驗證結果
    「勾選」全部項目,完成後在此頁面等待驗證結果

  14. 經過一會,在同頁面下方收到回覆訊息,已批准通過
    經過一會,在同頁面下方收到回覆訊息,已批准通過

註冊免費域名

  1. 登入 US.KG 後即可註冊域名
    US.KG 申請域名介面

    一個帳號可以註冊 3 個域名,點選左邊的「Domain Registration」(域名註冊)
    一個帳號可以註冊 3 個域名,點選左邊的「Domain Registration」(域名註冊)

  2. 輸入想要的域名後,點選「Check」(檢查),例如:bugtest
    輸入想要的域名後,點選「Check」(檢查),例如:bugtest

  3. 出現「Congratulations! This domain name is now available」,顯示該域名可以註冊使用
    新域名:bugtest.us.kg,Name Server 需要填寫名稱伺服器,這裡將會託管到 Cloudflare,所以先不用填寫,此頁面不要關閉
    出現「Congratulations! This domain name is now available」,顯示該域名可以註冊使用

託管到 Cloudflare

  1. 進入 Cloudflare 官網,點選右上角「登入」
    Cloudflare 官網

    進入 Cloudflare 官網,點選右上角「登入」

  2. 點選左側的「網站」,輸入 US.KG 免費域名:bugtest.us.kg,點選「快速掃描 DNS 記錄」,再點選「繼續」
    點選左側的「網站」,輸入 US.KG 免費域名:bugtest.us.kg,點選「快速掃描 DNS 記錄」,再點選「繼續」

  3. 點選「免費」方案,再點選「繼續」
    點選「免費」方案,再點選「繼續」

  4. 點選「繼續以啟用」
    點選「繼續以啟用」

  5. 點選「確認」
    點選「確認」

  6. 複製下方的 Cloudflare 名稱伺服器(兩個),再點選下方的「繼續」
    junade.ns.cloudflare.com
    norah.ns.cloudflare.com
    複製下方的 Cloudflare 名稱伺服器(兩個),再點選下方的「繼續」

    複製下方的 Cloudflare 名稱伺服器(兩個),再點選下方的「繼續」-2

  7. 貼到 US.KG 域名註冊頁面中的兩個「Name Server」(名稱伺服器),再點選「Register」(註冊)
    貼到 US.KG 域名註冊頁面中的兩個「Name Server」(名稱伺服器),再點選「Register」(註冊)

  8. 出現「Successful purchase」,表示註冊成功,完成新域名註冊,點選左下方的「Back to panel」(返回控制台)
    出現「Successful purchase」,表示註冊成功,完成新域名註冊,點選左下方的「Back to panel」(返回控制台)

  9. 控制台顯示已經註冊 1 個域名,點選左側「My Domains」(我的域名)
    控制台顯示已經註冊 1 個域名,點選左側「My Domains」(我的域名)

  10. 點選「域名」(bugtest.us.kg)
    點選「域名」(bugtest.us.kg)

  11. 查看域名詳細資訊,域名免費使用,每年需要續約,在域名到期前 180 天可續訂一年
    點選左側的「NS Records」(NS記錄),右方可以更新修改「Name Server」(名稱伺服器)
    查看域名詳細資訊,域名免費使用,每年需要續約,在域名到期前 180 天可續訂一年

  12. 點選左側的「Renew」(續約),右方可以續訂一年(若小於到期日 180 天)
    點選左側的「Renew」(續約),右方可以續訂一年(若小於到期日 180 天)

    若離到期日超過 180 天時點選「Renew」(續約),會出現無法續訂的訊息
    若離到期日超過 180 天時點選「Renew」(續約),會出現無法續訂的訊息

  13. 點選左側的「WHOIS Privacy Protection」(WHOIS 隱私保護),右方可以「Enable」(啟用) 或「Disable」(停用)
    建議啟用 WHOIS 隱私保護,以避免隱私洩漏的風險。
    點選左側的「WHOIS Privacy Protection」(WHOIS 隱私保護),右方可以「Enable」(啟用) 或「Disable」(停用)

  14. 點選左側的「Cancel This Domain」(刪除域名),右方可以「Cancel thisdomain」(刪除此域名)
    點選左側的「Cancel This Domain」(刪除域名),右方可以「Cancel thisdomain」(刪除此域名)

  15. 若您真的要刪除此域名,請「Enter domain name」(輸入域名) 後點選下方的「Cancel Domain」(取消域名)
    若您真的要刪除此域名,請「Enter domain name」(輸入域名) 後點選下方的「Cancel Domain」(取消域名)

Cloudflare 設定檢查

  1. 進入 Cloudflare 官網
    Cloudflare 官網

  2. 點選左側的「網站」,再點選右側的域名
    點選左側的「網站」,再點選右側的域名

  3. 上方域名的狀態顯示「使用中」,表示已經成功將 US.KG 免費域名託管到 Cloudflare
    上方域名的狀態顯示「使用中」,表示已經成功將 US.KG 免費域名託管到 Cloudflare

  4. 將右邊的功能下拉到底下,點選「從 Cloudflare 中移除」可以刪除已託管的域名
    將右邊的功能下拉到底下,點選「從 Cloudflare 中移除」可以刪除已託管的域名

  5. 點選「移除」會刪除已託管的域名
    點選「移除」會刪除已託管的域名

Cloudflare DNS 是否要開啟 Proxy 呢?

Cloudflare DNS 設定」是否需要開啟 Proxy(雲端代理)取決於您的需求:

開啟 Proxy:

  1. 如果您希望 Cloudflare 給您提供 CDN網站加速SSLDDoS 防護,則需要開啟 Proxy。
  2. 此時,Cloudflare 會代理您的網站,並管理 SSL 和安全性。
  3. Nginx 和 Cloudflare 之間的 HTTP/HTTPS 通訊會經過 Cloudflare 的 CDN 中轉。
  4. 如果您的網站使用了 Cloudflare 的憑證和 SSL 設定,開啟 Proxy 是必要的。

關閉 Proxy:

  1. 如果不開啟 Proxy,您將無法使用 Cloudflare 的 SSL、CDN 加速、DDoS 防護等服務。
  2. DNS 設定仍然會指向 Cloudflare,但 HTTP/HTTPS 將不會被 Cloudflare 管理,會直接對接 Nginx。

建議:

  1. 如果您使用了 Cloudflare 的「原點憑證」(Origin Certificate),並希望透過 Cloudflare 提供的 SSL 和安全服務,那麼 Proxy 應該開啟。
  2. 如果您希望簡單的 DNS 設定(不需要 Cloudflare CDN、SSL 加速等),可以關閉 Proxy。

Cloudflare DNS 設定

  1. 點選左側的「網站」,再點選右側的域名
    點選左側的「網站」,再點選右側的域名

  2. 點選左側的「DNS」
    點選左側的「DNS」

  3. 點選右側的「新增記錄」
    點選右側的「新增記錄」

  4. 使用瀏覽器開啟下列網址,查詢自己的「外部IP位址」
    我的IP位址查詢

    使用瀏覽器開啟下列網址,查詢自己的「外部IP位址」

  5. 類型:A﹑名稱:@﹑IPv4 位址:外部IP﹑Proxy 狀態:向右啟用,接著點選「儲存」
    類型:A﹑名稱:@﹑IPv4 位址:外部IP﹑Proxy 狀態:向右啟用,接著點選「儲存」

  6. 出現一筆自己域名的 A記錄:bugtest.us.kg
    出現一筆自己域名的 A記錄:bugtest.us.kg

  7. 再次點選右側的「新增記錄」
    再次點選右側的「新增記錄」

  8. 類型:A﹑名稱:www﹑IPv4 位址:外部IP﹑Proxy 狀態:向右啟用,接著點選「儲存」
    類型:A﹑名稱:www﹑IPv4 位址:外部IP﹑Proxy 狀態:向右啟用,接著點選「儲存」

  9. 出現一筆 A記錄:www
    出現一筆 A記錄:www

  10. 測試網頁 index.htm
    <html><body><h1>It works!</h1>
    <p>This is the default web page for this server.</p>
    <p>The web server software is running but no content has been added, yet.</p>
    </body></html>
    測試網頁 index.htm

  11. 測試您的伺服器,在瀏覽器輸入 http://www.bugtest.us.kg
    測試您的伺服器,在瀏覽器輸入 http://www.bugtest.us.kg

  12. 測試您的伺服器,在瀏覽器輸入 https://www.bugtest.us.kg
    Cloudflare 預設已經啟用 SSL 憑證,可以透過 https 連線伺服器
    Cloudflare 預設已經啟用 SSL 憑證,可以透過 https 連線伺服器

  13. 點選左側的「SSL/TLS」,可以看到預設的加密模式「彈性」
    點選左側的「SSL/TLS」,可以看到預設的加密模式「彈性」

  14. 點選右方的「編輯」可以編輯 DNS 記錄
    點選右方的「編輯」可以編輯 DNS 記錄

  15. 修改 DNS 內容後,再點選右下角的「儲存」
    修改 DNS 內容後,再點選右下角的「儲存」

  16. 「勾選」一筆或多筆記錄後點選「刪除記錄」可以將 DNS 記錄刪除
    「勾選」一筆或多筆記錄後點選「刪除記錄」可以將 DNS 記錄刪除

  17. 輸入「刪除」後點選下方的「刪除」即可將 DNS 記錄刪除
    輸入「刪除」後點選下方的「刪除」即可將 DNS 記錄刪除

Cloudflare DDNS

Cloudflare DDNS – 動態 IP 自動對應網址

Cloudflare DDNS 是一種技術,讓使用者能夠將變動的動態 IP 地址與域名保持一致,無需手動更改 DNS 記錄,從而確保服務的持續可用性,特別適合那些無法獲得固定 IP 的場景,如家庭網路、監控設備或一些小型企業。

使用 Cloudflare API 實現 Cloudflare DDNS

在許多情境下,動態 IP 地址可能會影響設備或網站的連線穩定性。為了解決這個問題,我們可以利用 Cloudflare DDNS (動態域名系統),通過 Cloudflare API 來自動更新 DNS 記錄,使域名始終指向正確的動態 IP。

建置步驟

  1. 註冊 Cloudflare 帳戶並登錄網域
    Cloudflare 官網

    進入 Cloudflare 官網並註冊域名
    進入 Cloudflare 官網並註冊域名

  2. 獲取 API Token
    點選右上角的人員圖示,再點選「我的設定檔」(My Profile)
    點選右上角的人員圖示,再點選「我的設定檔」(My Profile)

    點選左邊「API 權杖」(API Token),再點選右邊的「建立 Token」(Create Token)

    點選「編輯區域 DNS」(Edit zone DNS) 右方的「使用範本」(Use template)
    點選「編輯區域 DNS」(Edit zone DNS) 右方的「使用範本」(Use template)

    設定 Token 最小權限範圍
    權限(Permissions):區域(Zone) / DNS / 編輯(Edit)
    區域資源(Zone Resources):包含(Include) / 特定區域(Specific zone) / 您的域名(Domain)
    設定完成後點選「繼續至摘要」(Continue to summary)
    設定 Token 最小權限範圍

    點選「建立 Token」(Create Token)
    點選「建立 Token」(Create Token)

    獲取 API Token
    點選「Copy」複製 Token,下方是 curl 命令,可以進行 API 測試
    獲取 API Token

    Cloudflare API 呼叫測試
    Bearer 後方的字串 → 您的 API Token
    如果呼叫成功會收到 JSON Success response
    API Token:L01u13czcFZ8Wd2_3cWmxxex0qZXTKPEymW_6w8TT

    curl -X GET "https://api.cloudflare.com/client/v4/user/tokens/verify" \
         -H "Authorization: Bearer L01u13czcFZ8Wd2_3cWmxxex0qZXTKPEymW_6w8T" \
         -H "Content-Type:application/json" | python -m json.tool
    

    Cloudflare API 呼叫測試

  3. 獲取 ZoneID
    1. Bearer 後方的字串 → 您的 API Token

    如果呼叫成功會收到 ZoneID,找到 name 是您域名 bugtest.us.kg 的 id
    ZoneID:d95801613008c8b6d131a3ff72d7e4be

    curl -X GET "https://api.cloudflare.com/client/v4/zones" \
         -H "Authorization: Bearer L01u13czcFZ8Wd2_3cWmxxex0qZXTKPEymW_6w8T" \
         -H "Content-Type:application/json" | python -m json.tool
    

    獲取 ZoneID

  4. 獲取 RecordID
    1. zones/ 後方的字串 → 您的 ZoneID
    2. Bearer 後方的字串 → 您的 API Token

    如果呼叫成功會收到 RecordID,找到 name 是您域名 bugtest.us.kg 的 id
    RecordID:e3ff3df73968e2c423577e0a21f2eb97
    獲取 RecordID

    若您要更新 A記錄是 www 的 DNS,找到 name 是 www.bugtest.us.kg 的 id
    RecordID:9398c983e25cdaa1c47973e851b12307
    若您要更新 A記錄是 www 的 DNS

    curl -X GET "https://api.cloudflare.com/client/v4/zones/d95801613008c8b6d131a3ff72d7e4be/dns_records" \
         -H "Authorization: Bearer L01u13czcFZ8Wd2_3cWmxxex0qZXTKPEymW_6w8T" \
         -H "Content-Type:application/json" | python -m json.tool
    

    若您要更新 A記錄是 www 的 DNS

  5. 使用 Cloudflare API 更新 DNS IP 位址
    1. zones/ 後方的字串 → 您的 ZoneID:d95801613008c8b6d131a3ff72d7e4be
    2. dns_records/ 後方的字串 → 您的 RecordID:e3ff3df73968e2c423577e0a21f2eb97
    3. Bearer 後方的字串 → 您的 API Token:L01u13czcFZ8Wd2_3cWmxxex0qZXTKPEymW_6w8T
    4. name 後方的字串 → 您的域名:bugtest.us.kg
    5. content 後方的字串 → 您的外部 IP 位址:114.25.133.1

    透過下面的命令更新 IP 資訊

    curl -X PUT "https://api.cloudflare.com/client/v4/zones/d95801613008c8b6d131a3ff72d7e4be/dns_records/e3ff3df73968e2c423577e0a21f2eb97" \
         -H "Authorization: Bearer L01u13czcFZ8Wd2_3cWmxxex0qZXTKPEymW_6w8T" \
         -H "Content-Type: application/json" \
         --data '{"type":"A","name":"bugtest.us.kg","content":"114.25.133.1","ttl":120,"proxied":false}' \
         | python -m json.tool
    

    使用 Cloudflare API 更新 DNS IP 位址

    1. zones/ 後方的字串 → 您的 ZoneID:d95801613008c8b6d131a3ff72d7e4be
    2. dns_records/ 後方的字串 → 您的 RecordID:9398c983e25cdaa1c47973e851b12307
    3. Bearer 後方的字串 → 您的 API Token:L01u13czcFZ8Wd2_3cWmxxex0qZXTKPEymW_6w8T
    4. name 後方的字串 → 您的域名:www.bugtest.us.kg
    5. content 後方的字串 → 您的外部 IP 位址:114.25.139.242

    透過下面的命令更新 IP 資訊

    curl -X PUT "https://api.cloudflare.com/client/v4/zones/d95801613008c8b6d131a3ff72d7e4be/dns_records/9398c983e25cdaa1c47973e851b12307" \
         -H "Authorization: Bearer L01u13czcFZ8Wd2_3cWmxxex0qZXTKPEymW_6w8T" \
         -H "Content-Type: application/json" \
         --data '{"type":"A","name":"www.bugtest.us.kg","content":"114.25.139.242","ttl":120,"proxied":false}' \
         | python -m json.tool
    

    使用 Cloudflare API 更新 DNS IP 位址-2

自動更新 IP 腳本

使用 Cloudflare API 自動更新 DNS IP 的腳本

透過 Shell Script 利用 Crontab 排程執行,就可以自動更新主機的動態 IP,實現自動化的 Cloudflare DDNS 功能。

  1. 自動更新 IP 腳本 (bugtest.us.kg)
     cf-ddns-root.sh 

    #!/bin/bash
    
    # 設定變數
    CF_TOKEN="L01u13czcFZ8Wd2_3cWmxxex0qZXTKPEymW_6w8T"  # Cloudflare API Token
    CF_ZONE_ID="d95801613008c8b6d131a3ff72d7e4be"    # Cloudflare ZoneID
    CF_RECORD_ID="e3ff3df73968e2c423577e0a21f2eb97"  # Cloudflare RecordID
    DDNS_NAME="bugtest.us.kg"                   # 要更新的域名
    
    # 獲取目前「外部IP」和「DNS記錄IP」
    InternetIP=$(curl -s http://ipv4.icanhazip.com | tr -d '\n')
    # Cloudflare Proxy 取消時使用
    # DNS_RecordIP=$(host "$DDNS_NAME" | grep "has address" | awk '{print $NF}')
    # Cloudflare Proxy 取消或啟用時都可使用
    DNS_RecordIP=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records/$CF_RECORD_ID" \
            -H "Authorization: Bearer $CF_TOKEN" \
            -H "Content-Type: application/json" | jq -r '.result.content')
            
    # 如果兩個IP不同,就更新「DNS記錄」,"ttl":1 表示自動(Auto)
    if [ "$InternetIP" != "$DNS_RecordIP" ]; then
        echo "Updating IP from $DNS_RecordIP to $InternetIP"
        curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records/$CF_RECORD_ID" \
            -H "Authorization: Bearer $CF_TOKEN" \
            -H "Content-Type: application/json" \
            --data '{"type":"A","name":"'$DDNS_NAME'","content":"'$InternetIP'","ttl":1,"proxied":true}' \
            | grep -q '"success":true' && echo "Update successful" || echo "Update failed"
    else
        echo "No update needed. Current IP: $InternetIP"
    fi
    
     

    變更檔案權限成可執行 (cf-ddns-root.sh)

    chmod +x cf-ddns-root.sh
    

    變更檔案權限成可執行 (cf-ddns-root.sh)

  2. 自動更新 IP 腳本 (www.bugtest.us.kg)
     cf-ddns-www.sh 

    #!/bin/bash
    
    # 設定變數
    CF_TOKEN="L01u13czcFZ8Wd2_3cWmxxex0qZXTKPEymW_6w8T"  # Cloudflare API Token
    CF_ZONE_ID="d95801613008c8b6d131a3ff72d7e4be"    # Cloudflare ZoneID
    CF_RECORD_ID="9398c983e25cdaa1c47973e851b12307"  # Cloudflare RecordID
    DDNS_NAME="www.bugtest.us.kg"                    # 要更新的域名
    
    # 獲取目前「外部IP」和「DNS記錄IP」
    InternetIP=$(curl -s http://ipv4.icanhazip.com | tr -d '\n')
    # Cloudflare Proxy 取消時使用
    # DNS_RecordIP=$(host "$DDNS_NAME" | grep "has address" | awk '{print $NF}')
    # Cloudflare Proxy 取消或啟用時都可使用
    DNS_RecordIP=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records/$CF_RECORD_ID" \
            -H "Authorization: Bearer $CF_TOKEN" \
            -H "Content-Type: application/json" | jq -r '.result.content')
    
    # 如果兩個IP不同,就更新「DNS記錄」,"ttl":1 表示自動(Auto)
    if [ "$InternetIP" != "$DNS_RecordIP" ]; then
        echo "Updating IP from $DNS_RecordIP to $InternetIP"
        curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/dns_records/$CF_RECORD_ID" \
            -H "Authorization: Bearer $CF_TOKEN" \
            -H "Content-Type: application/json" \
            --data '{"type":"A","name":"'$DDNS_NAME'","content":"'$InternetIP'","ttl":1,"proxied":true}' \
            | grep -q '"success":true' && echo "Update successful" || echo "Update failed"
    else
        echo "No update needed. Current IP: $InternetIP"
    fi
    
     

    變更檔案權限成可執行 (cf-ddns-www.sh)

    chmod +x cf-ddns-www.sh
    

    變更檔案權限成可執行 (cf-ddns-www.sh)

  3. 排程 每30分鐘 執行腳本
     sudo vim /etc/crontab 

    */30 * * * * root /root/ddns/cf-ddns-root.sh >/dev/null 2>&1 &
    */30 * * * * root /root/ddns/cf-ddns-www.sh >/dev/null 2>&1 &
    

網站主機 DNS 設定

💡 範例 → 樹莓派 5B:8GB 型號、作業系統:Ubuntu Server 24.04.1 LTS 64Bit
 
  1. 在自己的網站主機上修改設定檔
    將 DNS 指向 Cloudflare 的 DNS 伺服器

    sudo vim /etc/netplan/50-cloud-init.yaml
    
  2. 增加 DNS 設定
    找到 nameservers,將 addresses 設定成 Cloudflare 的 DNS 伺服器

    1.   1.1.1.1   是 Cloudflare 的 DNS 主要伺服器
    2.  1.0.0.1  是 Cloudflare 的 DNS 備用伺服器
    network:
      ethernets:
        eth0:
          dhcp4: true
          dhcp6: false
          nameservers:
            addresses:
              - 1.1.1.1
              - 1.0.0.1
        version: 2
    

    增加 DNS 設定

  3. 套用網路設定
    sudo netplan apply
    
  4. DNS 伺服器修改設定
    # 備份舊設定檔
    sudo cp /etc/resolv.conf /etc/resolv.conf.bak
    
    # 使用軟連結替換,將 /etc/resolv.conf 指向 Systemd-resolved 完整的DNS設定檔
    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
    
    # 驗證設定
    cat /etc/resolv.conf
    
    # 重啟網路服務
    sudo systemctl restart systemd-resolved
    
     

    DNS 伺服器設定-修改前後對照

結語

透過本教學的步驟說明,可以將 US.KG 免費域名Cloudflare 的進階功能結合,建立起一個完整的動態域名解決方案,從域名申請DNS 託管,再到自動化IP更新的機制,每個環節都經過精心設定,確保系統能夠穩定運作。

特別是透過 Cloudflare API 實現的 DDNS 功能,讓使用者能夠輕鬆克服動態IP帶來的存取困擾,這套解決方案不僅完全免費,更提供了包含 SSL 加密CDN 加速等進階的功能,為個人使用者和小型專案提供了專業級的網域名稱服務,透過定期的自動更新機制,您的服務可以持續穩定運作,為後續的應用開發和部署奠定堅實的基礎。

閱讀完成

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端