Skip to content

解析记录管理

解析记录(DNS Records)是 DNS 系统的核心,定义了域名与 IP 地址或其他资源的映射关系。

支持的记录类型

DNS-Go 支持多种标准 DNS 记录类型:

A 记录(IPv4 地址)

将域名映射到 IPv4 地址。

示例:

www.example.local    A    192.168.1.100
mail.example.local   A    192.168.1.101

用途:

  • 网站服务器指向
  • 应用服务器指向
  • 负载均衡(多 A 记录)

AAAA 记录(IPv6 地址)

将域名映射到 IPv6 地址。

示例:

www.example.local    AAAA    2001:db8::1

CNAME 记录(别名)

将域名指向另一个域名(规范化名称)。

示例:

blog.example.local    CNAME    www.example.local

注意:

  • CNAME 记录不能与同名的其他记录共存
  • CNAME 目标必须是域名,不能是 IP 地址
  • MX、NS 等记录不能指向 CNAME

MX 记录(邮件交换)

指定域名的邮件服务器。

示例:

example.local    MX    10 mail.example.local
example.local    MX    20 backup.example.local

参数说明:

  • 优先级:数值越小优先级越高
  • 目标:邮件服务器域名

TXT 记录(文本)

存储任意文本信息,常用于:

  • SPF(发件人策略框架)
  • DKIM(域名密钥识别邮件)
  • DMARC(邮件认证报告)
  • 域名验证

示例:

example.local    TXT    "v=spf1 include:_spf.example.com ~all"

NS 记录(名称服务器)

指定域名的权威 DNS 服务器。

示例:

example.local    NS    ns1.example.local
example.local    NS    ns2.example.local

PTR 记录(反向解析)

实现 IP 地址到域名的反向映射。

示例:

100.1.168.192.in-addr.arpa    PTR    www.example.local

SRV 记录(服务定位)

指定服务的服务器位置和端口。

示例:

_sip._tcp.example.local    SRV    10 5 5060 sipserver.example.local

参数说明:

  • 优先级:数值越小优先级越高
  • 权重:相同优先级时的选择比例
  • 端口:服务端口
  • 目标:服务器域名

CAA 记录(证书颁发机构授权)

指定哪些证书颁发机构可以为域名签发证书。

示例:

example.local    CAA    0 issue "letsencrypt.org"
example.local    CAA    0 issuewild ";"

记录管理操作

创建解析记录

  1. 进入「域名管理」→「域名列表」
  2. 点击域名名称进入详情页
  3. 选择「解析记录」标签
  4. 点击「新增记录」按钮
  5. 填写记录信息:
字段说明示例
主机记录子域名或 @(根域名)wwwmail@
记录类型A、AAAA、CNAME、MX 等A
记录值对应的值192.168.1.100
TTL缓存时间(秒)300
状态启用/禁用启用
  1. 点击「确定」保存

编辑记录

  1. 在解析记录列表中找到要编辑的记录
  2. 点击「编辑」按钮
  3. 修改记录信息
  4. 点击「保存」

删除记录

  1. 在解析记录列表中找到要删除的记录
  2. 点击「删除」按钮
  3. 确认删除操作

批量操作

批量导入

支持从 CSV/Excel 文件批量导入记录:

  1. 准备 CSV 文件,格式如下:

    csv
    name,type,value,ttl,status
    www,A,192.168.1.100,300,enabled
    mail,A,192.168.1.101,300,enabled
    blog,CNAME,www,300,enabled
  2. 进入域名详情页的「解析记录」标签

  3. 点击「批量导入」按钮

  4. 选择文件并上传

  5. 预览并确认导入

批量导出

  1. 选择要导出的记录(可多选)
  2. 点击「批量导出」按钮
  3. 选择导出格式(CSV/Excel)
  4. 下载文件

主机记录格式

常用主机记录

主机记录说明完整域名
@根域名example.local
www万维网www.example.local
*泛解析匹配所有子域名
mail邮件服务器mail.example.local
ftpFTP 服务器ftp.example.local
apiAPI 服务api.example.local

多级子域名

支持多级子域名:

www.blog.example.local    A    192.168.1.100
dept.team.corp.example.local    A    192.168.1.101

TTL 设置建议

TTL(Time To Live)决定 DNS 记录在缓存中的存活时间。

场景建议 TTL说明
生产环境3600-86400减少 DNS 查询频率
开发测试60-300快速生效变更
负载均衡60-300支持快速切换
动态 IP60-600适应 IP 变化

记录冲突规则

某些记录类型之间存在冲突:

冲突情况说明
CNAME 与其他记录同一主机记录不能同时存在 CNAME 和其他类型
根域名 CNAME不建议在根域名(@)使用 CNAME
重复的 A 记录允许(用于负载均衡)
重复的 MX 记录允许(需要不同优先级)

API 接口

获取记录列表

bash
GET /api/DomainRecord/list?domain_id=1&page=1&pageSize=20

响应示例:

json
{
  "code": 200,
  "data": {
    "list": [
      {
        "id": 1,
        "domain_id": 1,
        "name": "www",
        "type": "A",
        "value": "192.168.1.100",
        "ttl": 300,
        "status": "enabled",
        "created_at": "2025-01-15T10:30:00Z"
      }
    ],
    "total": 10
  }
}

创建记录

bash
POST /api/DomainRecord/create
Content-Type: application/json

{
  "domain_id": 1,
  "name": "www",
  "type": "A",
  "value": "192.168.1.100",
  "ttl": 300,
  "status": "enabled"
}

更新记录

bash
PUT /api/DomainRecord/update/:id
Content-Type: application/json

{
  "name": "www",
  "type": "A",
  "value": "192.168.1.101",
  "ttl": 300,
  "status": "enabled"
}

删除记录

bash
DELETE /api/DomainRecord/delete/:id

最佳实践

记录规划

建议按用途规划记录命名:

# Web 服务
www          → 主网站
blog         → 博客
shop         → 商城

# 基础设施
ns1, ns2     → DNS 服务器
mail         → 邮件服务器
ftp          → FTP 服务器

# 应用服务
api          → API 网关
app          → 应用服务器
cdn          → 静态资源

高可用配置

使用多条 A 记录实现负载均衡:

www    A    192.168.1.100
www    A    192.168.1.101
www    A    192.168.1.102

邮件服务器配置

完整的邮件服务配置:

# MX 记录
@      MX    10 mail.example.local
@      MX    20 mail-backup.example.local

# A 记录
mail   A     192.168.1.100

# SPF 记录
@      TXT   "v=spf1 mx a:mail.example.local ~all"

常见问题

Q: 记录修改后多久生效?

生效时间取决于 TTL 设置:

  • 如果 TTL 为 300 秒,最多等待 5 分钟
  • 可通过 dig 命令查看当前 TTL:
    bash
    dig @localhost www.example.local

Q: 支持 DNSSEC 吗?

DNSSEC 功能正在开发中,将在后续版本提供。

Q: 如何配置泛解析?

使用 * 作为主机记录:

*      A    192.168.1.100

这样 anything.example.local 都会解析到该 IP。

Q: CNAME 和 A 记录哪个更好?

场景推荐原因
指向固定 IPA 记录查询更快,无额外跳转
指向其他域名CNAMEIP 变化时自动跟随
CDN 场景CNAME便于 CDN 提供商管理

相关文档

基于 MIT 许可发布