pfSense、OPNsense 增加阿里云和腾讯云动态域名解析支持

很多人会把 pfSense 或 OPNsense 作为家庭、工作室、小型机房的主路由使用。如果公网 IP 是动态变化的,Dynamic DNS 就非常重要:它可以在 WAN 地址变化时,自动把域名解析记录更新到当前公网 IP。

pfSense 和 OPNsense 自带了不少国外 DNS 服务商支持,例如 Cloudflare、GoDaddy、Route53 等,但国内常用的阿里云 DNS 和腾讯云 DNSPod 支持并不完整。为了方便国内用户使用,我整理了三个补丁项目:

补丁安装后,可以在 Web 管理界面的 Dynamic DNS 页面中直接选择阿里云或腾讯云服务,填写 API 密钥、域名和主机记录,自动更新解析。如下图所示:

pfSense上的阿里DNS解析

OPNsnese上的阿里DNS解析

本人没有购买国内的域名解析,经群友测试,在pfSense CE 2.8.1,OPNsense 26.1.10 上可以正常解析。使用过程中有任何问题,欢迎及时反馈。

增加内容

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 设置
  • 腾讯云支持自定义解析线路

安装方法

pfSense CE

项目目录结构大致如下:

pfSense-ce-dyndns/
├── src/
├── install.sh
├── uninstall.sh
├── check_install.sh
└── readme.me

上传到 pfSense CE 后,用 root 执行:

chmod +x install.sh uninstall.sh check_install.sh
./install.sh

安装脚本会自动备份原文件,例如:

/root/dyndns-aliyun-tencent-backup-20260621-090000

并把补丁包复制到持久目录:

/root/dyndns-aliyun-tencent

同时注册开机自愈脚本:

/usr/local/etc/rc.d/dyndns-aliyun-tencent_check

以后如果 pfSense CE 升级覆盖了相关文件,重启后会自动检测并恢复补丁。

pfSense Plus

pfSense Plus 使用单独补丁包,避免和 CE 混用:

pfSense-plus-dyndns/
├── src/
├── install.sh
├── uninstall.sh
├── check_install.sh
└── readme.me

安装方式相同:

chmod +x install.sh uninstall.sh check_install.sh
./install.sh

安装后持久目录为:

/root/dyndns-plus-aliyun-tencent

开机自愈脚本为:

/usr/local/etc/rc.d/dyndns-plus-aliyun-tencent_check

OPNsense

OPNsense 需要安装 os-ddclient 插件, Dynamic DNS 使用 native 后端和 Python ddclient 兼容模块,目录结构与 pfSense 不同。

项目结构:

opnsense-dyndns-aliyun-tencent/
├── src/
├── install.sh
├── uninstall.sh
├── check_install.sh
└── readme.me

上传到 OPNsense 后执行:

chmod +x install.sh uninstall.sh check_install.sh
./install.sh

安装后持久目录为:

/root/opnsense-dyndns-aliyun-tencent

并注册以下自愈入口:

/usr/local/etc/rc.d/opnsense-dyndns-aliyun-tencent_check
/usr/local/etc/rc.syshook.d/start/99-opnsense-dyndns-aliyun-tencent
/usr/local/etc/rc.syshook.d/upgrade/99-opnsense-dyndns-aliyun-tencent

这样 OPNsense 在开机和升级后都会自动检查补丁是否还存在。如果升级覆盖了文件,会自动重新安装。

配置方法

pfSense

进入:

Services > Dynamic DNS > Dynamic DNS Clients

新增一个 Dynamic DNS 客户端。

阿里云配置

选择:

Aliyun DNS

或 IPv6:

Aliyun DNS (v6)

字段填写:

Username: AccessKey ID
Password: AccessKey Secret
Hostname: 主机记录,例如 www;根域名填写 @
Domain name: 域名区域,例如 example.com
TTL: 可选,默认 600

示例:

Hostname: nas
Domain name: example.com

最终会更新:

nas.example.com

如果要更新根域名:

Hostname: @
Domain name: example.com

腾讯云配置

选择:

Tencent Cloud DNS

或 IPv6:

Tencent Cloud DNS (v6)

字段填写:

Username: SecretId
Password: SecretKey
Hostname: 主机记录,例如 www;根域名填写 @
Domain name: 域名区域,例如 example.com
Zone ID: 可选,填写解析线路;不填默认使用 默认
TTL: 可选,默认 600

OPNsense

进入:

Services > Dynamic DNS > Settings

建议使用:

Backend: native

阿里云配置

新增账户:

Service: Aliyun DNS
Username: AccessKey ID
Password: AccessKey Secret
Zone: example.com
Hostname(s): www.example.com 或 @
TTL: 可选,默认 600

腾讯云配置

新增账户:

Service: Tencent Cloud DNS
Username: SecretId
Password: SecretKey
Zone: example.com
Hostname(s): www.example.com 或 @
resourceId: 可选,填写解析线路;不填默认使用 默认
TTL: 可选,默认 600

卸载方法

每个项目都提供 uninstall.sh

恢复最新备份:

./uninstall.sh

也可以指定备份目录:

./uninstall.sh /root/对应的-backup-目录

卸载时会:

  • 恢复原文件
  • 清理自愈脚本
  • OPNsense 会清理 syshook
  • 重新检查语法
  • 必要时重启 Dynamic DNS 服务

注意事项

  • API 密钥权限要足够。阿里云 AccessKey 需要有 DNS 记录查询、新增、修改权限。腾讯云 SecretId / SecretKey 需要有 DNSPod 记录查询、新增、修改权限。
  • 建议使用子账号密钥。不要直接使用主账号 AK/SK。建议创建 RAM 子用户或腾讯云子账号,只授予 DNS 管理相关权限。
  • 升级后自动恢复不是强行覆盖。补丁自愈脚本会先检查目标文件结构。如果上游系统升级后 Dynamic DNS 结构变化太大,脚本会停止并提示,避免破坏系统。
  • 先测试一个子域名,确认可以正常更新后,再用于正式域名。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇