返回顶部
n

namecheap-dnsNamecheap DNS管理

Safe DNS record management for Namecheap domains. Fetch, add, remove, backup, and restore DNS records with automatic safety checks and dry-run mode. Prevents accidental DNS record wipeout via the Namecheap API's destructive setHosts method.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.0
安全检测
已通过
746
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

namecheap-dns

Namecheap DNS 管理

针对 Namecheap API 的 DNS 操作安全封装。通过始终先获取现有记录再合并更改,防止意外清空记录。

⚠️ 为什么需要这个技能

Namecheap API 的 setHosts 方法会替换域名的所有 DNS 记录。一次错误的 API 调用 = 整个 DNS 配置消失。本技能:

  • - ✅ 始终先获取现有记录
  • ✅ 将新记录与现有记录合并(除非明确要求替换)
  • ✅ 在应用更改前显示差异预览
  • ✅ 每次更改前自动备份
  • ✅ 支持试运行模式进行安全测试
  • ✅ 一键从备份回滚

设置

1. 安装依赖

bash
cd ~/.openclaw/workspace/skills/namecheap-dns
npm install

2. 启用 Namecheap API 访问

  1. 1. 访问 https://ap.www.namecheap.com/settings/tools/apiaccess/
  2. 开启API 访问开关
  3. 将你的 IP 地址加入白名单
  4. 复制你的 API 密钥

3. 设置环境变量

添加到 ~/.zshrc 或 ~/.bashrc:

bash
export NAMECHEAPAPIKEY=你的-api-密钥
export NAMECHEAP_USERNAME=你的用户名
export NAMECHEAPAPIUSER=你的用户名 # 通常与用户名相同

使用方法

验证 DNS 并检测幽灵记录

⚠️ 重要:请先运行此命令!

bash
./namecheap-dns.js verify example.com

此命令将 Namecheap API 可见的 DNS 记录与实际实时 DNS 记录(通过 dig)进行比较。它会警告你 DNS 中存在但 API 不可见的幽灵记录(邮件转发、URL 重定向等)。

列出当前 DNS 记录

bash
./namecheap-dns.js list example.com

注意: 这仅显示 API 可见的记录。使用 verify 查看所有记录,包括由 Namecheap 子系统管理的记录。

添加记录(安全合并)

bash

添加单个 TXT 记录


./namecheap-dns.js add example.com \
--txt mail.example.com=v=spf1 include:mailgun.org ~all

一次添加多个记录

./namecheap-dns.js add example.com \ --txt mail=v=spf1 include:mailgun.org ~all \ --cname email.mail=mailgun.org \ --mx mail=10 mxa.mailgun.org

试运行(预览更改而不应用)

./namecheap-dns.js add example.com \ --txt test=hello \ --dry-run

强制覆盖安全检查(如果你确定可以删除幽灵记录)

./namecheap-dns.js add example.com \ --txt test=hello \ --force

安全性: 该技能在进行更改前会自动检查幽灵记录。如果检测到,它将拒绝继续,除非你使用 --force。

删除记录

bash

按主机名+类型删除


./namecheap-dns.js remove example.com \
--host old-record \
--type TXT

先试运行

./namecheap-dns.js remove example.com \ --host old-record \ --type TXT \ --dry-run

备份与恢复

bash

创建手动备份


./namecheap-dns.js backup example.com

列出可用备份

./namecheap-dns.js backups example.com

从最新备份恢复

./namecheap-dns.js restore example.com

从特定备份恢复

./namecheap-dns.js restore example.com \ --backup example.com-20260213-114500.json

记录格式

TXT 记录

--txt 子域名=值
--txt @=值 # 根域名

CNAME 记录

--cname 子域名=目标.com

MX 记录

--mx 子域名=10 mx.目标.com
--mx @=10 mx.目标.com # 根域名

A 记录

--a 子域名=192.168.1.1
--a @=192.168.1.1 # 根域名

备份位置

默认: ./backups/(相对于技能目录)

可通过环境变量配置:
bash
export NAMECHEAPBACKUPDIR=/自定义/备份路径

格式:{域名}-{时间戳}.json

每个备份包含:

  • - apiHosts:Namecheap API 可见的记录
  • liveDNS:通过 dig 捕获的实际 DNS 记录
  • 时间戳和域名元数据

这让你可以看到 DNS 中实际生效的记录,而不仅仅是 API 知道的记录。

安全特性

  1. 1. 幽灵记录检测 — 自动检查 API 不可见的记录
  2. 更改前自动备份 — 每次 add 或 remove 都会创建带时间戳的备份(包含 DNS 快照)
  3. 试运行模式 — --dry-run 显示将要更改的内容而不应用
  4. 差异预览 — 精确查看将要添加/删除的记录
  5. 先获取后操作 — 更改前始终获取当前 DNS 状态
  6. 合并逻辑 — 添加到现有记录而非替换
  7. 回滚 — 一键从备份恢复
  8. 安全覆盖 — --force 标志用于需要绕过幽灵记录警告时

示例

Mailgun 设置

bash
./namecheap-dns.js add menuhq.ai \
--txt mail.menuhq.ai=v=spf1 include:mailgun.org ~all \
--txt smtp._domainkey.mail.menuhq.ai=k=rsa; p=MIGfMA0... \
--txt _dmarc.mail.menuhq.ai=v=DMARC1; p=quarantine; \
--cname email.mail.menuhq.ai=mailgun.org \
--mx mail.menuhq.ai=10 mxa.mailgun.org \
--mx mail.menuhq.ai=20 mxb.mailgun.org \
--dry-run

查看差异,然后不带 --dry-run 运行以应用更改。

已知限制

⚠️ Namecheap API 具有破坏性

Namecheap 的 domains.dns.setHosts API 方法会替换域名的所有 DNS 记录。没有添加一条记录或更新一条记录的端点。每次更改需要:

  1. 1. 获取所有现有记录(getHosts)
  2. 修改列表
  3. 上传整个列表(setHosts)

本技能为你处理这个问题,始终先获取再合并更改。

🔍 幽灵记录:隐藏的危险

问题: domains.dns.getHosts 不会返回所有 DNS 记录。由 Namecheap 子系统管理的记录对 API 不可见:

  • - 邮件转发 — MX、SPF 和 DKIM 记录
  • URL 重定向 — 域名停放/重定向的 A/CNAME 记录
  • 第三方集成 — 通过 Namecheap 控制面板为服务添加的记录

由于 setHosts 替换所有记录,使用 API 可能会静默删除这些隐藏记录。

🛡️ 本技能如何保护你

  1. 1. verify 命令 — 将 API 记录与实际实时 DNS(通过 dig)进行比较,并警告幽灵记录
  2. 自动安全检查 — 在任何 add、remove 或 restore 之前,技能会检查幽灵记录
  3. 拒绝继续 — 如果检测到幽灵记录,操作将被阻止(除非使用 --force)
  4. 明确警告 — 精确显示如果继续将丢失哪些记录
  5. 备份中的 DNS 快照 — 通过 dig 捕获实际 DNS 状态,而不仅仅是 API 状态

何时使用 --force

仅在以下情况下使用 --force 标志:

  • - 你已手动确认不再需要幽灵记录
  • 你故意删除邮件转发或 URL 重定向
  • 你理解并接受这些记录将被删除

切勿盲目使用 --force。 始终先运行 verify 查看会丢失什么。

示例:生产事故

这个技能是在通过 API 添加 Mailgun DNS 记录导致 Namecheap 的邮件转发记录被清除后创建的。邮件转发的 MX/SPF/TXT 记录对 getHosts 不可见,因此获取-合并-写入模式删除了它们。

现在

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 namecheap-dns-1776420090 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 namecheap-dns-1776420090 技能

通过命令行安装

skillhub install namecheap-dns-1776420090

下载

⬇ 下载 namecheap-dns v1.1.0(免费)

文件大小: 14.68 KB | 发布时间: 2026-4-17 20:15

v1.1.0 最新 2026-4-17 20:15
Added verify command for ghost record detection, automatic safety checks before destructive operations, DNS snapshots in backups, configurable backup directory

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部