如何在 pfSense 上使用 FastDDNS 設定動態 DNS(DDNS)

pfSense 有兩種方式可讓 FastDDNS hostname 指向你的 WAN 位址:在內建 Dynamic DNS 用戶端中建立自訂項目,或使用單行 cron 指令碼。本指南會介紹這兩種設定方式,並說明為什麼只有其中一種可在還原設定後繼續運作。

Minh NguyenMinh NguyenFastDDNS 創辦人兼開發者

在 pfSense 上運行 FastDDNS 的兩種方法

您的主機名稱面板提供兩種設置。方法 2 將 FastDDNS 加入內建的 Services > Dynamic DNS 客戶端,作為 Custom 提供者——這是建議長期保留的方式,因為 pfSense 會將其儲存在設定中並備份。 方法 1 將單行腳本貼入 shell,安裝每兩分鐘執行一次的 cron 工作。它會立即生效,但 pfSense 不會管理這項工作。

以下編號依照您面板中的標籤,而非我們建議的順序。長期使用請設定方法 2;如果您想立即送出更新而不必逐一填寫表單,請使用方法 1。


方法 2 — 內建 DDNS 客戶端 方法 1 — crontab 腳本
操作位置 Web UI 中的 Services > Dynamic DNS Diagnostics > Command Prompt,或 SSH
儲存在 pfSense 設定中 — 請參閱下方的限制
設定還原或重新安裝後仍會保留
傳送更新的時機 受監控介面的位址變更時,以及每日重新檢查一次 每兩分鐘一次,無論如何
設定所需工作量 七個欄位,其中四個直接從面板複製 貼上一次即可
適用情境 永久設定 立即進行第一次更新,或快速測試

開始之前

有四件事,其中兩件會決定遠端存取是否能正常運作。

  • 一個 FastDDNS hostname。FastDDNS 上建立免費帳號,然後開啟它並捲動至 DDNS Configuration Parameters > Firewall pfSense
  • pfSense 網頁介面的管理員存取權,以及只有在計劃使用方法 1 時才需要的 shell 存取權。
  • WAN 介面上的真實公開 IP。 如果你的 ISP 將你置於電信級 NAT(Carrier-Grade NAT)之後,DDNS 無法提供幫助——hostname 會指向 ISP 外部無法連線的位址。請在 pfSense 儀表板上查看 WAN 位址,或在 FastDDNS 手機應用中運行 CGNAT 檢查器。
  • 要存取目標所需的防火牆和 NAT 規則。 DDNS 只會讓名稱持續指向正確的位址;如何連入仍由你負責。之後使用 端口檢查確認。

在 pfSense 儀表板上,如果 WAN 介面上的位址位於 10.0.0.0/8172.16.0.0/12192.168.0.0/16100.64.0.0/10 範圍內,就表示上游正在執行 NAT。100.64.0.0/10 範圍是保留給電信級 NAT 的。


方法 2 — 將 FastDDNS 新增為自訂動態 DNS 用戶端

這是值得保留的設定。pfSense 會將其儲存在 config.xml中,因此還原設定時會一併恢復,重新安裝後也能保留。

步驟 1 — 從你的 hostname 面板複製更新 URL

打開你的主機名,滾動到 DDNS Configuration Parameters,然後展開 Firewall pfSense。兩種方法所需的一切資訊都在這個面板中:

FastDDNS 控制面板中的防火牆 pfSense 面板:方法 1 使用上方的安裝腳本,方法 2 使用自定義服務類型、強制 IPv4 DNS 解析、更新 URL 和下面的描述
目前面板的樣子 — 此螢幕截圖中的 hostname 和認證資訊已遮蔽;你的資料會填入其中

複製 Method 2 下方的 更新 URL 框。它已經包含了你的主機名和憑證:

https://client.fastddns.net/?hostname=myhome.fastddns.net&user_name=YOUR-USERNAME&user_pass=YOUR-UPDATE-PASSWORD

大寫的三個值代表帳戶中的私人資訊 — 面板會自動為你填入。

第 2 步 — 打開動態 DNS 客戶端

在 pfSense 網頁介面中,前往 Services > Dynamic DNS,然後點選 + 新增

第 3 步 — 填寫各欄位

欄位 原因
Service Type Custom FastDDNS 不在內建提供者清單中,也不需要加入其中
Interface to Monitor WAN 地址變更時應觸發更新的介面
Hostname 你的 FastDDNS hostname 更新 URL 已經包含它,因此對 Custom 類型而言,這主要是你在清單中看到的標籤
Update URL 步驟 1 中的 URL 完整貼上。沒有 %IP% 可供替換 — FastDDNS 會記錄請求來源的地址
Force IPv4 DNS Resolution 已勾選 僅透過 IPv4 解析更新主機,因此 FastDDNS 記錄的是你的 IPv4 WAN 地址,而不是 IPv6 地址
Result Match 留空 pfSense 會將此值與完整回覆進行比較。FastDDNS 在變更後回覆 good,沒有變更時回覆 nochg,因此沒有單一固定字串能同時符合兩者——面板本身的說明也未設定此值
Description FastDDNS.net 自由文字,供你自行參考
在 FastDDNS 儀表板中的 pfSense 防火牆面板,方法 2 已標示:服務類型 自訂,強制 IPv4 DNS 解析 選取,更新 URL 與描述欄位
面板顯示的 Method 2 值 — 這是頁面的舊版淺色主題;欄位保持不變

第 4 步 — 儲存,然後查看狀態欄

點選 儲存並強制更新。回到 Services > Dynamic DNS 清單,Cached IP欄位應該會填入你目前的 WAN 位址。空白項目,或強制更新後仍顯示過時的位址,都表示更新未成功——下面的故障排除表格會說明原因。

關於這個方法,有一點需要了解:它是由事件驅動,而不是每兩分鐘傳送一次心跳。Netgate 記錄了這項服務會在 介面位址變更時 pfSense 也會提供一個預設的 cron 條目,每天 01:01 執行一次 /etc/rc.dyndns.update,作為安全網。所以失敗的更新確實會被重試——只是不會在幾分鐘內。當你需要立即更新時,使用儲存並強制更新

如果你希望從自己的腳本驅動相同的端點,參數已在 FastDDNS 客戶端 API 頁面 上有文件說明。

下面的操作示範錄影較舊,因此面板看起來與這裡的截圖不同。欄位和步驟順序都相同。