概覽
動態 DNS 解決 IP 變動問題,非所有主機問題。
許多家庭與小型辦公網路會不定期獲得新的公開 IP。動態 DNS 讓網域指向當前地址,確保 VPN、儀表板、測試站或自架應用可持續存取。GhostlyDDns 專注於 Cloudflare 區域,更新您已建立的紀錄。
適用性檢查
當 Cloudflare 是您的 DNS 真實來源時,使用 GhostlyDDns
最適合的網路是公開地址會變動,但網域需持續運作。若您的路由器或主機提供商已處理您所需的 Cloudflare 更新,可能不需額外代理。
GhostlyDDns 的適用場景
- 您使用 Cloudflare DNS,且已有想維護的 A 或 AAAA 紀錄。
- 您的家庭、辦公室、實驗室或備援網路會獲得變動的公開 IP。
- 您希望將 Cloudflare API 令牌本地存放,而非放在第三方 DDNS 服務中。
- 您需要在 Windows、Linux 或 Linux ARM 上使用相同的設定風格。
何時其他 DDNS 方案更簡單
- 您的網路供應商提供靜態公開 IP,且 DNS 很少變動。
- 您的路由器已使用限定權限的憑證安全更新 Cloudflare,並提供有用的日誌。
- 您需要託管儀表板、團隊存取控制、警示與管理支援。
- 您期望工具在第一版中從無建立 Cloudflare 紀錄。
目錄
Cloudflare 更新
GhostlyDDns 僅在公開 IP 實際變更時更新
代理程式會檢查您的公開 IPv4 與 IPv6 位址,與最後已知值比較,僅在 A 或 AAAA 紀錄需更新目標時呼叫 Cloudflare API,保持更新循環安靜並避免不必要的 API 流量。
A 紀錄會跟隨目前的 IPv4 位址
IPv4 服務如家庭 VPN 端點、小型儀表板、反向代理或測試站,請使用 A 紀錄。
當主機有 IPv6 時,AAAA 紀錄可跟隨 IPv6 位址
僅當主機有穩定的 IPv6 路由時啟用 IPv6,否則保持 IPv6 偵測器關閉。
Cloudflare 呼叫保持變更感知
GhostlyDDns 先比較數值,僅在 DNS 目標需變更時才更新 Cloudflare。
隱私與安全
本地執行讓敏感部分靠近您的網路
GhostlyDDns 不需託管控制面板。Cloudflare API 令牌保留在執行代理的機器上,日誌本地保存,更新循環可在防火牆、排程器或 systemd 服務後方執行。
使用最小且實用的 Cloudflare API 令牌
將令牌權限限制於 GhostlyDDns 實際需要的區域與 DNS 編輯權限,勿重複使用帳號全域令牌於簡單 DDNS 任務。
像保護機密般保護 YAML 檔案
設定檔可包含 Cloudflare API 令牌,請嚴格控制檔案權限,避免貼入截圖、工單或公開日誌。
更新循環在您指定的位置執行
GhostlyDDns 不需外部控制面板,您的排程器、防火牆、日誌與重試策略皆屬自有設定。
監控失敗狀況,不需每次正常執行都關注
預期會有安靜且成功的執行。請注意非零退出代碼、重複的 Cloudflare 失敗,以及停止回應的偵測端點。
設定流程
可靠流程為先設定區域,再設定令牌,最後設定排程器
乾淨的 DDNS 設定主要是準備工作。先建立紀錄,將 Cloudflare 令牌限定於該區域,執行模擬測試,然後將代理程式放入適合您作業系統的排程器中。
建立紀錄
先在 Cloudflare 新增 A 或 AAAA 紀錄,選擇代理模式,測試時使用臨時主機名稱。
限定令牌範圍
建立僅能編輯指定區域 DNS 的 Cloudflare API 令牌,不得擴及其他權限。
執行模擬檢查
使用乾跑指令確認設定、紀錄名稱、偵測器與 Cloudflare 存取權限,然後再進行正式更新。
排程代理程式
可設定計時器執行一次或持續以服務方式運行,並於前幾次 IP 變更時檢查日誌與退出代碼。
設定
一個 YAML 檔案描述令牌、紀錄、間隔、IP 偵測與日誌
保持設定簡單且易於審查。安全存放令牌,設定符合需求的輪詢間隔,僅在主機有真實 IPv6 路由時啟用 IPv6,並列出所有需跟隨公開 IP 的 Cloudflare 紀錄。
核心 CLI 指令
啟用重複任務前先執行模擬,顯示 GhostlyDDns 將更新的內容,避免首次設定成為盲目生產變更。
ghostly-ddns init-config --path ./config.yaml
ghostly-ddns dry --config ./config.yaml
ghostly-ddns once --config ./config.yaml
ghostly-ddns run --config ./config.yaml
ghostly-ddns --help
ghostly-ddns --versionYAML 範例設定
具體數值依您的 Cloudflare 區域與紀錄名稱而定,但結構保持簡潔,方便一般程式碼審查。
cloudflare:
api_token: CF_API_TOKEN
update:
interval_seconds: 120
ip_detection:
detect_ipv4: true
detect_ipv6: false
v4_endpoints:
- https://api.ipify.org
- https://ipv4.icanhazip.com
v6_endpoints:
- https://api6.ipify.org
logging:
retention_days: 30
records:
- name: home.example.com
type: A
proxied: true
ttl: auto部署
將 GhostlyDDns 當作小型基礎設施服務執行
Linux 可用 systemd 服務與計時器方便重啟與稽核;Windows 則用工作排程定時執行。兩者皆應易於查找日誌,且設定檔不可公開讀取。
Linux systemd 計時器
盡可能使用專用服務帳號,並將設定保存在受保護目錄中。
[Unit]
Description=Run GhostlyDDns
[Service]
Type=oneshot
ExecStart=/usr/local/bin/ghostly-ddns once --config /etc/GhostlyDDns/config.yaml
[Timer]
OnBootSec=60
OnUnitActiveSec=120
Unit=ghostly-ddns.service
[Install]
WantedBy=timers.targetWindows 工作排程
每隔幾分鐘執行相同 CLI 指令,並在日常作業流程中監控非零退出代碼。
schtasks /Create ^
/SC MINUTE /MO 5 ^
/TN "GhostlyDDns" ^
/TR "C:\GhostlyDDns\ghostly-ddns.exe once --config C:\GhostlyDDns\config.yaml" ^
/RL HIGHEST ^
/F版本
選擇與 DDNS 代理執行環境相符的版本
每個授權涵蓋所選版本的 GhostlyDDns 1.x 更新。Windows 適合小型辦公機器,Linux 適合 VPS 或家用伺服器,Linux ARM 適合全天運作的低功耗裝置。
Windows
當 Windows 機器持續上線,且需為小型網路維持 Cloudflare 紀錄更新時使用。
開啟 Windows 版本Linux
適用於已運行無人值守服務的 VPS、家用伺服器、實驗室設備或反向代理主機。
開啟 Linux 版本Linux ARM
適用於全天候運作且能執行低負載小型 DDNS 代理的 ARM64 裝置。
開啟 Linux ARM 版本開始使用
自動化正式 DNS 前,先從一個測試紀錄開始
建立臨時子域名,使用 GhostlyDDns 乾跑模式,確認令牌僅能編輯指定區域,然後將相同設定套用至重要紀錄。
常見問題
GhostlyDDns 常見問題
關於 Cloudflare 紀錄、API 令牌、IPv6、排程、日誌及供應商 DDNS 何時足夠的簡短解答。
GhostlyDDns 自動化哪些工作?
GhostlyDDns 在您的公開 IPv4 或 IPv6 位址變更時更新現有 Cloudflare A 與 AAAA 紀錄,不取代 Cloudflare DNS 也不建立主機平台。
GhostlyDDns 會建立新的 Cloudflare 紀錄嗎?
第一版旨在更新已存在的紀錄。請先在 Cloudflare 建立 DNS 紀錄,再由 GhostlyDDns 維持目標最新。
我應該將 Cloudflare API 令牌存放在哪裡?
將令牌存放於執行 GhostlyDDns 的機器上,並以嚴格權限保護 YAML 檔案。令牌應僅能編輯指定區域的 DNS。
GhostlyDDns 能更新 IPv6 紀錄嗎?
是的。當主機有真實路由的 IPv6 位址時啟用 IPv6 偵測。GhostlyDDns 可在偵測到 IPv6 位址變更時更新 AAAA 紀錄。
何時供應商 DDNS 就足夠?
當您的路由器或主機提供商已安全更新 Cloudflare,支援所需紀錄並提供可信日誌時,供應商 DDNS 可能已足夠。
代理程式應多久執行一次?
家庭與辦公網路常用兩到五分鐘的短輪詢間隔。若不需快速故障轉移,可使用較長的輪詢間隔。