---
title: "13.1 域名购买与 DNS 配置"
---

# 13.1 域名购买与 DNS 配置

> **本节目标**：购买一个属于你的域名，配置 DNS 解析，让用户通过自定义域名访问你的应用。

小明决定给自己的网站买个正式的域名。他打开搜索引擎，输入"免费域名"——老师傅一把拦住："上一节刚说过，免费域名不靠谱。咱们直接买。"

## 域名购买

### 选择注册商

| 注册商 | 优势 |
|-------|------|
| **Cloudflare** | 成本价续费、免费 DNS 和 CDN |
| **阿里云（万网）** | 国内最大、支持 .cn 域名 |
| **腾讯云（DNSPod）** | 腾讯生态、DNS 解析快 |
| **Namecheap** | 价格便宜、隐私保护免费 |

<!-- 📸 截图占位：Cloudflare 域名注册页面，展示域名搜索界面 -->

### 域名怎么选

小明兴冲冲地搜了一下 `xiaoming.com`——已经被注册了。他又试了 `xiaoming-app.com`，可以买，但老师傅摇了摇头："太长了，别人听到拼不出来。"

最后小明选了一个短的、好拼的域名。选域名没有标准答案，但有几个原则：越短越好记，别人听到能打出来，`.com` 最通用。如果 `.com` 被注册了，`.dev`、`.app`、`.io` 也不错——但要注意续费价格，有些域名首年 ¥1，续费 ¥300，买之前看清楚。

### 域名结构

域名的层级和地址一样——"中国 · 北京 · 朝阳区"从大到小，`com · myapp · blog` 从右到左也是从大到小：

```
https://blog.myapp.com
  │      │      │    │
  │      │      │    └── 顶级域名 (TLD): .com / .cn / .dev
  │      │      └────── 二级域名 (SLD): myapp（你购买的部分）
  │      └───────────── 子域名: blog（你自己配的）
  └──────────────────── 协议: https
```

你购买的是 `myapp.com`（二级域名 + 顶级域名）。子域名可以无限创建：`blog.myapp.com`、`api.myapp.com`、`admin.myapp.com`——不需要额外花钱。

<DomainHierarchy />

### 购买流程

1. 注册腾讯云账号
2. 进入 [域名注册](https://cloud.tencent.com/product/domain)
3. 搜索你想要的域名
4. 选择年限（建议先买 1 年），完成支付

![image-20260302021706102](/images/Advanced/image-20260302021706102.png)

::: tip 国内域名注册
如果你需要 `.cn` 域名或计划备案，推荐选择国内平台注册。流程类似：搜索域名 → 加入购物车 → 实名认证 → 支付。
:::

## DNS 解析配置

域名买到了，但浏览器还不认识它——你需要告诉 DNS"这个域名指向哪里"。

### DNS 是什么

DNS 就像手机通讯录。你搜"妈妈"，手机帮你拨 138xxxx。浏览器搜 `myapp.com`，DNS 帮你找到服务器地址。没有 DNS，你就得记住每个网站的 IP 地址——就像没有通讯录，你得背下所有人的电话号码。

<DNSResolution />

### 两种常用记录

<DNSRecordTypes />

| 记录类型 | 指向 | 使用场景 |
|---------|------|---------|
| **A 记录** | IP 地址（如 `1.2.3.4`） | 指向云服务器 |
| **CNAME 记录** | 另一个域名（如 `xxx.edgeonepages.com`） | 指向部署平台 |

A 记录是直拨号码——通讯录里直接存了电话号码，拨过去就到。**云服务器用 A 记录**，因为你有固定的公网 IP。

CNAME 是呼叫转移——通讯录里存的是另一个人的名字，先查到那个人的号码再拨。**Serverless 部署用 CNAME**，因为平台的 IP 可能会变，但域名不会变。平台换了服务器 IP？没关系，转接号码没变，你的域名照样能用。

### 配置步骤（以绑定 EdgeOne Pages 为例）

小明买好了域名，现在要把它和 EdgeOne Pages 连起来。

**第一步：在部署平台添加自定义域名**

进入 EdgeOne Pages 项目设置 → 自定义域名 → 输入你的域名（如 `myapp.com`）。

平台会告诉你需要添加的 DNS 记录，通常是一条 CNAME 记录。（有时候也会让你添加 TXT 记录，认真按照要求填写即可）

![image-20260302021734337](/images/Advanced/image-20260302021734337.png)

**第二步：在域名注册商添加 DNS 记录**

去你的域名注册商（Cloudflare / 阿里云 / 腾讯云）的 DNS 管理页面，下面界面为阿里云DNS解析的添加示例：

- **类型**：CNAME
- **名称**：`@`（代表根域名）或 `www`，或者别的自定义前缀。
- **目标**：平台给你的 CNAME 值
- **TTL**：自动

![image-20260302021925134](/images/Advanced/image-20260302021925134.png)

**第三步：等待生效**

DNS 解析需要传播时间，通常几分钟到几小时不等。

TTL（Time To Live）就像通讯录的缓存。你改了妈妈的手机号，但手机还记着旧号码，要等缓存过期才会用新号码。DNS 也一样——你改了解析记录，全球的 DNS 服务器需要时间同步。大多数情况下几分钟就好，偶尔需要等几小时。

你可以用以下方式验证解析是否生效：

```bash
# 在终端检查 DNS 是否生效
nslookup myapp.com
# 或
ping myapp.com
```

看到返回了正确的 IP 或 CNAME 目标，说明解析成功。也可以告诉 Claude Code 帮你验证："帮我检查 myapp.com 的 DNS 解析是否生效了。"



## HTTPS：给你的网站加把锁

<SSLCertificateFlow />

![image-20260302022236403](/images/Advanced/image-20260302022236403.png)

HTTP 是明信片，路上谁都能看；HTTPS 是密封信，只有收件人能打开。浏览器地址栏的小锁就是"密封信"的标志——它意味着用户和你的网站之间的数据传输是加密的，不会被中间人窃听。

现代部署平台都支持免费的 HTTPS 证书（通常由 Let's Encrypt 这个免费证书签发服务自动签发），但申请方式略有不同：

- **Vercel / Cloudflare Pages**：绑定自定义域名后自动申请，全自动，不需要你操心

- **EdgeOne Pages**：需要你在域名管理页面手动点击"申请免费证书"。证书申请成功后会自动续期，不用担心过期

  ![image-20260302022300776](/images/Advanced/image-20260302022300776.png)

  ![image-20260302022312982](/images/Advanced/image-20260302022312982.png)

![image-20260302022322990](/images/Advanced/image-20260302022322990.png)

如果绑定域名后没有看到小锁，等 5-15 分钟再刷新。证书签发需要一点时间。

## 用 AI 辅助配置

整个流程中，如果你在某一步卡住了——比如不确定 CNAME 值填什么、不确定 DNS 记录有没有生效——直接告诉 Claude Code 你的情况。它可以帮你检查 DNS 配置、排查解析问题、确认证书状态。

本教程附带阿里云 MCP 配置指南。配置好后，Claude Code 可以通过 MCP 工具直接操作阿里云 DNS API，帮你完成解析配置。

## 常见问题

**Q：添加 CNAME 后还是访问不了？**
DNS 传播需要时间。等 10-30 分钟再试。如果超过 24 小时还不行，检查记录是否填写正确。

**Q：根域名（myapp.com）能用 CNAME 吗？**
严格来说不行（DNS 规范限制），但 Cloudflare 等平台会在背后自动把 CNAME 转换成 IP 地址返回，绕过了这个限制，效果一样。如果你的注册商不支持，就用 `www.myapp.com` 作为主域名。

**Q：www 和不带 www 怎么统一？**
添加两条记录：`@` 和 `www` 都指向部署平台。然后在平台设置里配置重定向，把其中一个跳转到另一个。

---

::: info 下一步
域名配好了，HTTPS 也生效了。如果你的项目面向国内用户，需要了解备案和合规问题，继续看 [13.2 备案与访问问题排查](./02-compliance-access.md)。
:::
