【免費 DDNS 自架】告別 No-IP 30天續期!GCP 永久免費 + Web 中控台 (Ep.1)

目錄

這是一篇關於 免費DDNS 架設的完整實戰教學。如果您家中有 NAS、架設網站或是安裝了監視器,這句話一定說出了您的心聲:

「受夠了 No-IP 每 30 天手動續期?」

身為免費版用戶,我們都經歷過那個共同的噩夢:收到「您的網域即將到期」的 Email,只要忙碌忘記點擊連結,家中設備就斷線失聯。除了續期地獄,免費版網址又長又難記,還得忍受將 IP 暴露給第三方平台的不確定性。

為什麼選擇 GCP 進行「免費 DDNS 自架」?

為什麼不自己掌握主控權?本系列教學將帶您利用 Google Cloud Platform (GCP) 的「永久免費」方案,搭配我們開發的開源系統,完成 免費 DDNS 自架,打造一套「永久免費、免續期、企業級」的管理平台。

自架方案強在哪裡?

  1. 完全免費且免續期:使用 GCP e2-micro 免費額度,效能足以應付成百上千次 DNS 更新,永遠不用擔心 30 天到期問題。
  2. Web 可視化管理:這是最強大的功能!我們提供一個漂亮的 Web 管理後台。不管您有 1 台還是 50 台設備(公司/分店/住家),都能在網頁上一鍵管理,不用再記複雜的指令。
  3. 安全性完勝:內建銀行級加密與防暴力破解機制,比市面上的免費服務更安全。
免費DDNS

📋 Ep.1 教學目標:打造您的專屬 DDNS 伺服器

在本篇教學中,我們將在您的 GCP 免費主機上,部署這套強大的管理系統。我們會完成基礎環境建置,並啟用核心的資安防護。

前置需求:一台免費的雲端主機 還沒有主機嗎?請先花 10 分鐘參考我們的前導教學,申請一台終身免費的台灣機房主機: 👉 [GCP 永久免費方案教學:建立 e2-micro VM 虛擬主機完整攻略 (2025版)]


步驟一:伺服器環境建置

請透過 SSH 連線到您的 GCP 主機。這套系統非常輕量,我們需要先安裝幾個基礎工具。

1. 更新系統並安裝工具

輸入以下指令,確保系統是最新的,並安裝 Python 與 Git。

# 更新系統套件
sudo apt update && sudo apt upgrade -y

# 安裝相關套件
sudo apt install -y \
    python3 \
    python3-pip \
    python3-venv \
    nginx \
    certbot \
    python3-certbot-nginx \
    git \
    htop \
    curl \
    wget

2. 下載中控台程式

將程式碼下載到您的主機中。

cd ~

# 下載專案程式碼
git clone https://github.com/Clone-information/secureddns  ~/ddns-server

cd ddns-server

步驟二:建立獨立運作環境

為了讓系統更穩定,我們不會將套件安裝在全域環境,而是使用 Python 虛擬環境 (venv)。這就像是幫這個程式蓋一個專屬的「沙盒」,互不干擾。

1. 建立與啟用環境

# 建立名為 venv 的虛擬環境
python3 -m venv venv

# 啟用虛擬環境
source venv/bin/activate

💡 成功了嗎? 當您看到終端機提示符號前面出現 (venv) 字樣時,代表您已成功進入虛擬環境。

2. 安裝核心功能

透過以下指令,一鍵安裝所有需要的模組(包含 Web 介面核心與加密模組)。

pip install --upgrade pip
pip install -r requirements.txt

步驟三:綁定網域 DNS (讓世界找得到您的主機)

在開始設定程式之前,我們必須先告訴 Cloudflare:「當有人輸入 ddns.example.com 時,請導向到我的 GCP 主機 IP。」

這一步非常關鍵,如果沒有設定,稍後的 SSL 憑證申請將會失敗。

1. 取得 GCP 主機的外部 IP

回到 GCP 主機介面,查看您的 External IP (外部 IP)

2. 設定 Cloudflare DNS

前往 Cloudflare 後台,選擇您的網域,進入 DNS > Records 頁面,新增一筆 A 紀錄:

  • Type (類型): A
  • Name (名稱): ddns (或是您喜歡的名稱,例如 admin)
  • IPv4 address (內容): 填入您的 GCP 外部 IP
  • Proxy status (代理狀態): ⚠️ 請務必設為 “DNS only” (灰色雲朵)
    • 注意:一定要關閉小橘雲,否則 DDNS 客戶端可能無法正確連線。

設定完成後,您可以到dnschecker,確認是否生效。


步驟四:資安配置 (這是自架比免費版更安全的主因)

市面上很多簡易 DDNS 腳本,都是把 Cloudflare 密碼直接寫在檔案裡,非常危險。 我們的系統內建了 企業級加密工具,能確保您的金鑰安全無虞。

1. 準備資料

請準備好您的 Cloudflare API Token (需有 DNS 編輯權限) 與 Zone ID

2. 啟動設定精靈

執行以下指令,進入互動式設定畫面:

python migrate_config.py

3. 系統自動加密

依照畫面指示輸入後,系統會在背景執行三件大事:

  1. AES 加密:將您的 Cloudflare Token 加密鎖起來。
  2. Argon2 雜湊:將您的管理員密碼進行不可逆運算(防止暴力破解)。
  3. 金鑰生成:產生一把專屬的解密金鑰。
# 當您看到這些勾勾,代表設定完成
✓ API Token 已加密
✓ 管理員密碼已雜湊
✓ 已生成 Flask Session 金鑰
✓ 新配置已儲存到: ddns_config_new.json

步驟五:保護您的數位鑰匙

執行完畢後,您會發現目錄下多了一個 encryption.key。 這就是這套系統的「鑰匙」,沒有它,誰也無法讀取您的 API Token。

  • 備份它:建議下載一份存到電腦裡。
  • 鎖好它:設定權限,只讓擁有者讀取。
chmod 600 encryption.key
chmod 600 ddns_config.json

步驟六:啟動並驗證

現在,讓我們嘗試啟動這台「自建 DDNS 中控台」!

1. 啟動伺服器

python ddns_management_server.py

2. 看到這個畫面就成功了

如果您看到以下畫面,恭喜您!您的免費主機已經變身為一台專業的 DDNS 伺服器了。

============================================================
 Clone SecureDDNS v2.1 - 企業級 DDNS 管理伺服器
 Copyright (c) 2025 Clone Information Ltd.
============================================================
安全特性:
  ✓ 密碼雜湊 (Argon2)
  ✓ 敏感資訊加密 (Fernet)
  ✓ 防暴力破解 (5 次/5 分鐘)
============================================================
正在啟動伺服器於通訊埠 8080...

下一步:讓管理介面正式上線

現在您的伺服器已經跑起來了,但目前還只能透過指令操作,且沒有 HTTPS 加密鎖頭。

為了讓您以後能舒舒服服地躺在沙發上,用手機瀏覽器管理家裡的 NAS 連線,我們需要把它變成一個正式網站。

在下一篇 【Ep.2:Nginx 反向代理與 SSL 憑證篇】,我們將教您:

  1. 設定 自動啟動:主機重開機,服務自動跑起來。
  2. 掛上 SSL 綠色鎖頭:讓您的管理後台連線加密,不用擔心密碼被竊聽。
  3. 正式啟用 Web UI:登入漂亮的圖形化介面,新增您的第一台設備!

擺脫 No-IP 續期噩夢,就差這最後一步!請持續關注本系列教學。

技術交給我們,專注你最擅長的事

從網站、網路到資料安全,無論是創業者、工作室或企業,我們都給你最全方位的 IT 支援。