如何在 pfSense 上使用 FastDDNS 设置动态 DNS(DDNS)

pfSense 可以通过两种方式让 FastDDNS hostname 始终指向您的 WAN 地址:将其作为内置动态 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 配置中 — 见下方的限制
配置恢复或重新安装后仍然保留
发送更新的时机 监控的接口地址发生变化时,以及每天重新检查一次 每 2 分钟一次,不受其他条件影响
设置所需工作量 七个字段,其中四个需要从面板复制 粘贴一次
适用于 长期使用的设置 立即进行第一次更新,或快速测试

开始之前

四件事情,其中两件决定远程访问是否可行。

  • 一个 FastDDNS hostname。FastDDNS,然后打开它并滚动到 DDNS Configuration Parameters > Firewall pfSense
  • pfSense web 界面的管理员访问权限,如果计划使用方法 1,则还需 shell 访问权限。
  • WAN 接口上的真实公网 IP。 如果你的 ISP 将你置于运营商级 NAT 后面,动态 DNS 将无济于事——hostname 将指向一个外部无人可达的地址。在 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 步 — 打开 Dynamic 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 列表中,缓存的 IP 列应显示您当前的 WAN 地址。若条目为空,或在强制更新后仍保持过时,则表示更新未成功——下方的故障排除表会说明原因。

需要理解这一方法的一点是:它由事件驱动,而不是每两分钟一次的心跳。Netgate 记录该服务会在接口地址发生变化时更新 ,并且 pfSense 还默认提供一个每天 01:01 运行 /etc/rc.dyndns.update 的 cron 条目作为安全保障。因此,更新失败时会被重试——只是不会在几分钟内完成。当您需要立即更新时,请使用 保存并强制更新

如果您更愿意从自己的脚本调用相同的端点,这些参数在FastDDNS 客户端 API 页面上有文档说明。

下面的演示录制较早,因此面板与此处的截图看起来不同。字段和步骤顺序相同。