> For the complete documentation index, see [llms.txt](https://doc.duaer.com/zh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/zh/build/custom-domain.md).

# 给 Duaer 数字组织绑定自己的域名

Duaer Starter 及以上套餐可以把自己的子域名（如 chat.example.com）绑定到一个已发布的数字组织，打开这个域名就是它的表单页或对话页。按下面三步操作：在 Duaer 填域名、在域名服务商加两条记录、回到 Duaer 检查。
## 绑定之前

- 数字组织已发布，发布的版本里有表单触发器，或开启了「Make Chat Publicly Available」的对话触发器。
- 你有一个可以改 DNS 解析的域名。只能绑子域名，比如 chat.example.com；example.com 这样的根域名不行。
- 这个子域名现在没有别的用途。如果它已经有 A、AAAA 或 CNAME 记录，要先删掉，否则新记录加不上或不生效。
- 套餐是 Duaer Starter 或更高。见下面的额度。

## 第一步：在 Duaer 里填写域名 <a href="#step-1" id="step-1"></a>

1. 打开要对外访问的数字组织，在右上角「…」菜单里点「设置」。
2. 在「数字组织设置」最底部找到「自定义域名」，输入子域名，比如 chat.example.com。
3. 数字组织同时有表单和公开对话时，选根地址打开哪一个：「打开表单页」或「打开对话页」。
4. 点「绑定」。状态显示「待验证」，下面出现一张记录表。

记录表有三列：记录类型、主机记录、记录值，每一格右边的按钮可以复制。以 chat.example.com 为例，记录表是这样的：

```
CNAME   chat                  custom.duaer.com
TXT     _duaer-verify.chat    duaer-verify=<Duaer 显示的验证码>
```

## 第二步：在域名服务商添加 Duaer 的两条记录

登录买域名的服务商（或你把 DNS 托管到的服务商），在 example.com 的解析设置里添加上面两条记录。主机记录是 example.com 前面的部分，只填 chat 和 _duaer-verify.chat；不要填成完整域名，否则会变成 chat.example.com.example.com。

不知道在哪家？查域名的 NS 记录：dns*.hichina.com 是阿里云，*.dnspod.net 是腾讯云，*.ns.cloudflare.com 是 Cloudflare。

## 在阿里云（万网）添加 Duaer 的记录 <a href="#aliyun" id="aliyun"></a>

1. 登录阿里云控制台，打开「云解析 DNS」›「权威域名解析」，在 example.com 这一行点「解析设置」。
2. 点「添加记录」：记录类型选 CNAME，主机记录填 chat，解析请求来源选「默认」，记录值填 custom.duaer.com，TTL 用默认的 10 分钟，点「确认」。
3. 再点「添加记录」：记录类型选 TXT，主机记录填 _duaer-verify.chat，记录值粘贴 Duaer 显示的 duaer-verify= 开头的整串，点「确认」。

如果提示和已有记录冲突，先删掉 chat 原来的 A 或 CNAME 记录。

## 在腾讯云 DNSPod 添加 Duaer 的记录 <a href="#dnspod" id="dnspod"></a>

1. 登录 DNSPod 控制台，在「我的域名」里点 example.com，进入「记录管理」。
2. 点「添加记录」：主机记录填 chat，记录类型选 CNAME，线路类型选「默认」，记录值填 custom.duaer.com，点「确认」。
3. 再添加一条：主机记录填 _duaer-verify.chat，记录类型选 TXT，记录值粘贴 duaer-verify= 开头的整串，点「确认」。

## 在 Cloudflare 添加 Duaer 的记录 <a href="#cloudflare" id="cloudflare"></a>

1. 登录 Cloudflare，选 example.com，打开「DNS」›「Records」，点「Add record」。
2. Type 选 CNAME，Name 填 chat，Target 填 custom.duaer.com。Proxy status 关掉，显示灰色云朵「DNS only」。点「Save」。
3. 再加一条：Type 选 TXT，Name 填 _duaer-verify.chat，Content 粘贴 duaer-verify= 开头的整串，点「Save」。

代理一定要关。橙色云朵（Proxied）会把域名解析到 Cloudflare 自己的地址，Duaer 查不到 CNAME，也签不了证书。

## 在其它服务商添加 Duaer 的记录

华为云、GoDaddy、Namecheap 等的做法一样：新建一条 CNAME、一条 TXT。字段可能叫 Host、Name 或「主机记录」，都填 chat 和 _duaer-verify.chat；少数服务商要求填完整域名，就填 chat.example.com 和 _duaer-verify.chat.example.com。

## 第三步：回到 Duaer 检查 DNS <a href="#step-3" id="step-3"></a>

1. 回到「自定义域名」，点「检查 DNS」。
2. 还查不到时，Duaer 会说缺的是 CNAME 还是 TXT。新记录一般几分钟内生效，改过的旧记录要等原来的 TTL 过去。
3. 两条都查到后状态变成「已生效」，域名变成链接。第一次打开时 Duaer 会自动签发 HTTPS 证书，可能要等几秒。

想自己确认记录有没有生效，可以在电脑终端里查：

```
nslookup -type=CNAME chat.example.com
nslookup -type=TXT _duaer-verify.chat.example.com
```

## Duaer 自定义域名打开什么

- 只有根地址：https://chat.example.com/ 打开表单页或对话页，表单提交会运行这个数字组织的已发布版本。
- 其它路径都显示「这个页面暂时无法访问」，不会露出 Duaer 编辑器或 Webhook。
- 对话页仍然从 api.duaer.com 收发消息。对话触发器的「Allowed Origins (CORS)」默认是 *；改过的话要加上 https://chat.example.com。

## Duaer 自定义域名的状态

- 待验证：DNS 记录还没查到。
- 已生效：域名正在打开数字组织。
- 已暂停：超出套餐额度，升级后自动恢复。
- 暂不可用：数字组织取消了发布，或发布的版本里没有选中的表单或对话。重新发布后恢复。

## Duaer 自定义域名常见问题排查 <a href="#troubleshooting" id="troubleshooting"></a>

- 一直提示查不到 CNAME：检查主机记录是不是只填了 chat；Cloudflare 的代理有没有关；chat 下是不是还留着旧的 A 记录。
- 一直提示查不到 TXT：主机记录要填 _duaer-verify.chat，不是 _duaer-verify；记录值要包含 duaer-verify= 前缀，前后不要多出空格。
- 已生效但浏览器提示证书错误：等几秒刷新一次，证书在第一次访问时签发。
- 对话页打得开但发不出消息：对话触发器的 Allowed Origins (CORS) 没有包含你的域名。
- 打开是「这个页面暂时无法访问」：确认打开的是根地址，并且状态是「已生效」。

## Duaer 套餐的域名额度

- Hobby 不能绑定；Starter 1 个；Pro 3 个；Business 不限。一个数字组织最多一个域名，一个域名只能绑一个数字组织。
- 额度按付费的账号算。降级后超出的部分从最新绑定的开始暂停，不会删除。见 [Duaer 套餐与积分](/zh/manage-cloud/plans.md)。

## 解绑 Duaer 自定义域名

在「自定义域名」里点「解绑」，域名立即不再打开这个数字组织，之后可以绑到别处。删除数字组织也会解绑它的域名。解绑后到域名服务商删掉那两条记录。
## Questions

### Duaer 自定义域名能用根域名吗？

不能。Duaer 自定义域名只接受子域名，比如 chat.example.com，因为根域名一般不能设 CNAME。

### 为什么 Duaer 除了 CNAME 还要一条 TXT 记录？

任何人都能把 CNAME 指向 Duaer。TXT 里的验证码证明域名是你的，Duaer 只给同时有两条记录的域名签证书。

### 绑定 Duaer 自定义域名后多久能用？

新加的 DNS 记录一般几分钟内生效。在 Duaer 点「检查 DNS」变成「已生效」后就能打开，第一次访问签发证书要几秒。

## 相关

- [在 Duaer 里用表单收集填写](https://doc.duaer.com/zh/build/form-trigger.md)
- [在 Duaer 里配置数字组织设置](https://doc.duaer.com/zh/build/manage-workflows/configure-workflow-settings.md)
- [Duaer 套餐与积分](https://doc.duaer.com/zh/manage-cloud/plans.md)

