很多人会把 pfSense 或 OPNsense 作为家庭、工作室、小型机房的主路由使用。如果公网 IP 是动态变化的,Dynamic DNS 就非常重要:它可以在 WAN 地址变化时,自动把域名解析记录更新到当前公网 IP。
pfSense 和 OPNsense 自带了不少国外 DNS 服务商支持,例如 Cloudflare、GoDaddy、Route53 等,但国内常用的阿里云 DNS 和腾讯云 DNSPod 支持并不完整。为了方便国内用户使用,我整理了三个补丁项目,补丁安装后,就可以在Dynamic DNS 页面中直接选择阿里云或腾讯云服务,填写 API 密钥、域名和主机记录,自动更新解析。如下图所示:
pfSense上的阿里DNS解析
OPNsense上的阿里DNS解析
增加内容
pfSense CE / pfSense Plus 支持以下服务:
- Aliyun DNS
- Aliyun DNS (v6)
- Tencent Cloud DNS
- Tencent Cloud DNS (v6)
OPNsense 支持以下服务:
- aliyun:Aliyun DNS
- tencentcloud:Tencent Cloud DNS
- dnspodcn:保留原 DNSPod 中国服务名,并增强为支持自动新增记录
功能包括:
- 自动检测当前公网 IPv4 / IPv6
- 查询 DNS 记录是否存在
- 记录存在时自动更新
- 记录不存在时自动新增
- 支持根域名记录 @
- 支持 TTL 设置
- 腾讯云支持自定义解析线路
安装方法
1.pfSense
下载附件,解压缩后,上传到pfSense,在终端运行以下命令安装:
sh install.sh
2.OPNsense
在shell 终端环境执行以下命令安装社区插件库 :
fetch -o /usr/local/etc/pkg/repos/opnwall.conf \https://opnwall.github.io/OPNsense-repo/opnwall.conf pkg update -f
更新软件包数据库后,进入:系统>固件>插件,找到 os-ddclient-opnwall 软件包,点击右侧的安装按钮进行安装。
配置方法
1.pfSense
导航到服务> 动态DNS,添加一个客户端。
1.阿里云配置
服务类型选择:Aliyun DNS 或 IPv6:Aliyun DNS (v6)
字段填写:
- 监控接口:wan
- 主机名:例如 nas;域名填写 example.com
- 用户名: AccessKey ID
- 密码: AccessKey Secret
- TTL: 可选,默认 600
主机名: nas,域名: example.com,最终会更新:nas.example.com。
如果要更新根域名,则主机名: @, 域名: example.com。
2.腾讯云配置
服务类型选择:Tencent Cloud DNS或 IPv6:Tencent Cloud DNS (v6)
字段填写:
- 监控接口:wan
- 主机名:例如 nas;域名填写 example.com
- 用户名: SecretId
- 密码:SecretKey
- 区域ID:例如 example.com 或不填
- TTL: 可选,默认 600
主机名: nas,域名: example.com,最终会更新:nas.example.com。
如果要更新根域名,则主机名填: @, 域名填: example.com。
2.OPNsense
进入:服务 > 动态DNS > 常规设置,选中启用,后端选项 native。如果是ipv6解析,高级选项选中允许ipv6。
1.阿里云配置
新增账户:
- 描述:输入一个描述说明
- 服务:Aliyun DNS
- 用户名: AccessKey ID
- 密码:AccessKey Secret
- 区域:example.com
- 主机名:nas;域名填写 example.com
- 检查ip方法:根据解析地址(v4或v6)的不同,选择对应的ip检查方法。
- 监控接口:wan
- TTL:可选,默认 600
2.腾讯云配置
新增账户:
- 描述:输入一个描述说明
- 服务: Tencent Cloud DNS
- 用户名: SecretId
- 密码: SecretKey
- 区域: example.com
- 主机名: www.example.com 或 @
- 检查ip方法:根据解析地址(v4或v6)的不同,选择对应的ip检查方法。
- 监控接口:wan
- TTL: 可选,默认 600
测试验证
1.pfSense CE ipv4动态解析
2.pfSense CE ipv6 动态解析
3.pfSense plus ipv4 动态解析
4.pfSense plus ipv6 动态解析
5.OPNsense ipv4 动态解析
6.OPNsense ipv6 动态解析
卸载方法
在终端运行以下命令卸载:
sh uninstall.sh
也可以指定备份目录进行恢复:
./uninstall.sh /root/对应的-backup-目录
注意事项
- API 密钥权限要足够。阿里云 AccessKey 需要有 DNS 记录查询、新增、修改权限。腾讯云 SecretId / SecretKey 需要有 DNSPod 记录查询、新增、修改权限。
- 建议使用子账号密钥。不要直接使用主账号 AK/SK。建议创建 RAM 子用户或腾讯云子账号,只授予 DNS 管理相关权限。
- 升级后自动恢复不是强行覆盖。补丁自愈脚本会先检查目标文件结构。如果上游系统升级后 Dynamic DNS 结构变化太大,脚本会停止并提示,避免破坏系统。







