关于 dns
dns Skill 介绍用于管理 Hostinger 托管域名记录的 Hostinger DNS API,涵盖记录验证与更新、区域重置,以及用于备份和恢复的快照。
主要功能
- 01读取、创建、更新和删除 DNS 记录
- 02应用变更前验证记录
- 03重置区域并设置保留记录类型
- 04列出并查看 DNS 快照
- 05从快照恢复区域
- 06TTL 与邮件 DNS 记录指南
适用场景
- 01查看域名当前的 DNS 记录
- 02应用经过验证的 DNS 区域变更
- 03批量编辑前备份 DNS 配置
- 04错误变更后恢复 DNS 记录
MCP 相关
此 Skill 介绍 Hostinger DNS API 的端点与用法;输入未说明项目会提供 MCP 服务或集成 MCP。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ hostinger/ hostinger-agent-skills --skill dns安装后在 Claude Code 中输入/dns确认已加载。
附带文件email-dns-setup.md
详细介绍
Hostinger DNS
DNS API 可对 Hostinger 上托管的域名进行 DNS 区域记录的全面管理。你可以创建、更新、删除、验证和重置 DNS 记录,还可以管理 DNS 快照以进行备份和恢复操作。
目录
核心概念
DNS 记录
支持标准 DNS 记录类型:
| 类型 | 用途 | 示例 |
|---|---|---|
| A | IPv4 地址 | 192.168.1.1 |
| AAAA | IPv6 地址 | 2001:db8::1 |
| CNAME | 规范名称别名 | www.example.com. |
| ALIAS | ANAME/ALIAS 记录 | example.com. |
| MX | 邮件交换 | mail.example.com. |
| TXT | 文本记录 | v=spf1 include:... |
| NS | 名称服务器 | ns1.example.com. |
| SOA | 授权起始 | 区域授权信息 |
| SRV | 服务定位 | _sip._tcp.example.com. |
| CAA | 证书颁发机构授权 | 0 issue "letsencrypt.org" |
区域更新
更新 DNS 记录时,overwrite 标志控制行为:
overwrite: true(默认)— 用新记录替换名称和类型匹配的现有记录overwrite: false— 更新现有记录的 TTL,追加新记录;如果未找到匹配项,则创建它们
快照
DNS 快照捕获域名 DNS 区域在某一时间点的状态。如果出现问题,可使用它们恢复先前的配置。
TTL(生存时间)
TTL 控制 DNS 解析器缓存记录的时间。默认值为 14400 秒(4 小时)。较低的值传播更改更快,但会增加 DNS 查询负载。
常见模式
获取域名的 DNS 记录
curl -X GET "https://developers.hostinger.com/api/dns/v1/zones/example.com" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
Python SDK:
from hostinger_api import Hostinger
client = Hostinger(api_token="YOUR_API_TOKEN")
records = client.dns.zone.get_dns_records("example.com")
for record in records:
print(f"{record.type} {record.name} -> {record.content}")
TypeScript SDK:
import { Hostinger } from "hostinger-api-sdk";
const client = new Hostinger({ apiToken: "YOUR_API_TOKEN" });
const records = await client.dns.zone.getRecords("example.com");
for (const record of records) {
console.log(`${record.type} ${record.name} -> ${record.content}`);
}
PHP SDK:
use Hostinger\Api\HostingerApi;
$client = new HostingerApi('YOUR_API_TOKEN');
$records = $client->dns->zone->getRecords('example.com');
foreach ($records as $record) {
echo "{$record->type} {$record->name} -> {$record->content}\n";
}
创建/更新 DNS 记录
# Add an A record for www subdomain
curl -X PUT "https://developers.hostinger.com/api/dns/v1/zones/example.com" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"overwrite": true,
"zone": [
{
"name": "www",
"type": "A",
"ttl": 14400,
"records": [
{ "content": "192.168.1.1" }
]
}
]
}'
# Add MX records for email
curl -X PUT "https://developers.hostinger.com/api/dns/v1/zones/example.com" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"overwrite": true,
"zone": [
{
"name": "@",
"type": "MX",
"ttl": 14400,
"records": [
{ "content": "10 mail1.example.com." },
{ "content": "20 mail2.example.com." }
]
}
]
}'
# Add a TXT record for SPF
curl -X PUT "https://developers.hostinger.com/api/dns/v1/zones/example.com" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"overwrite": false,
"zone": [
{
"name": "@",
"type": "TXT",
"ttl": 14400,
"records": [
{ "content": "v=spf1 include:_spf.google.com ~all" }
]
}
]
}'
更新前验证
# Validate records first (returns 200 if valid, 422 if invalid)
curl -X POST "https://developers.hostinger.com/api/dns/v1/zones/example.com/validate" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"overwrite": true,
"zone": [
{
"name": "www",
"type": "CNAME",
"ttl": 14400,
"records": [
{ "content": "example.com." }
]
}
]
}'
删除特定 DNS 记录
curl -X DELETE "https://developers.hostinger.com/api/dns/v1/zones/example.com" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filters": [
{ "name": "www", "type": "A" },
{ "name": "old", "type": "CNAME" }
]
}'
将 DNS 重置为默认值
curl -X POST "https://developers.hostinger.com/api/dns/v1/zones/example.com/reset" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sync": true,
"reset_email_records": false,
"whitelisted_record_types": ["MX", "TXT"]
}'
使用 DNS 快照
# List available snapshots
curl -X GET "https://developers.hostinger.com/api/dns/v1/snapshots/example.com" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Get a specific snapshot with contents
curl -X GET "https://developers.hostinger.com/api/dns/v1/snapshots/example.com/42" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Restore from a snapshot
curl -X POST "https://developers.hostinger.com/api/dns/v1/snapshots/example.com/42/restore" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
API 参考
区域记录
| 方法 | 端点 | 描述 |
|---|---|---|
GET | /api/dns/v1/zones/{domain} | 获取 DNS 记录 |
PUT | /api/dns/v1/zones/{domain} | 更新 DNS 记录 |
DELETE | /api/dns/v1/zones/{domain} | 删除 DNS 记录 |
POST | /api/dns/v1/zones/{domain}/reset | 将 DNS 重置为默认值 |
POST | /api/dns/v1/zones/{domain}/validate | 验证 DNS 记录 |
快照
| 方法 | 端点 | 描述 |
|---|---|---|
GET | /api/dns/v1/snapshots/{domain} | 列出 DNS 快照 |
GET | /api/dns/v1/snapshots/{domain}/{snapshotId} | 获取包含内容的快照 |
POST | /api/dns/v1/snapshots/{domain}/{snapshotId}/restore | 从快照恢复 |
最佳实践
记录管理
- 在应用更改之前,始终使用
/validate端点验证记录 - 在不删除现有记录的情况下添加记录时,使用
overwrite: false - 当你想完全替换给定名称/类型的记录时,使用
overwrite: true - 使用
@作为根域名记录的名称
安全
- 在进行批量更改之前,创建快照(或记录现有记录)
- 在重置期间使用
whitelisted_record_types参数以保留电子邮件记录(MX、TXT) - 如果你使用第三方电子邮件服务,在重置时设置
reset_email_records: false
TTL
- 在计划更改时使用较低的 TTL(300-600 秒)以加快传播
- 对稳定的记录增加 TTL(14400 秒以上)以减少 DNS 查询负载
- 请记住:旧的缓存记录会一直保留,直到先前的 TTL 过期
电子邮件记录
- 小心处理 MX 记录——错误的更改会中断电子邮件投递
- SPF、DKIM 和 DMARC 记录是 TXT 记录——不要意外覆盖它们
故障排查
记录未生效
- DNS 传播最多可能需要 48 小时(通常远小于此)
- 检查旧记录的 TTL —— 解析器会在该时长内缓存
- 使用
dig或nslookup验证:dig @8.8.8.8 example.com A
422 验证错误
- 记录内容格式无效(例如,CNAME 必须以
.结尾) - 记录冲突(例如,根域名处的 CNAME 与其他记录并存)
- 操作对应的记录类型无效
DNS 更改后邮件停止工作
- 检查 MX 记录:
dig example.com MX - 验证 SPF TXT 记录是否完好
- 如有需要,使用快照恢复进行还原
删除未按预期工作
- 筛选器按
name和type匹配 —— 两者必须同时匹配 - 如果多条记录共享相同的名称/类型,而你只想删除其中一部分,请改用更新端点
另请参阅
以下深入指南可在本技能目录中找到:
email-dns-setup.md—— 完整的邮件 DNS 设置(适用于 Google Workspace、Microsoft 365 和 Hostinger Email 的 MX、SPF、DKIM、DMARC)
参考
评论
支持 Markdown