1. 域名在哪里买,与在哪里修改 DNS 是两回事#
先查询域名正在使用的 NS。域名在 Namecheap 注册,但 NS 指向 Cloudflare 时,应去 Cloudflare 修改记录;在注册商的非权威 DNS 面板加记录不会生效。
dig +short NS example.com本文用 example.com 和文档示例地址 203.0.113.10 演示,实际操作请换成自己的域名和 VPS 公网 IP。添加一个子域名通常不需要修改整个域名的 NS,也不用影响邮箱记录。
2. 先设计要访问的地址#
| 想要的访问地址 | 类型 | 主机名/名称 | 值 |
|---|---|---|---|
| example.com | A | @ | VPS 的 IPv4 |
| stock.example.com | A | stock | VPS 的 IPv4 |
| www.example.com | CNAME | www | example.com |
| 已配置 IPv6 的子域名 | AAAA | stock | VPS 的 IPv6 |
DNS 记录不填写 https://、目录或端口。stock.example.com 指向服务器之后,网站仍需在服务器上配置对应域名和 80/443 端口。若应用监听 4180,应由反向代理接入 HTTPS,而不是把 IP:4180 写进 A 记录。
3. 在当前权威 DNS 面板保存记录#
Namecheap 使用其 BasicDNS、PremiumDNS 或 FreeDNS 时,进入 Domain List,找到域名点 Manage,再打开 Advanced DNS,在 Host Records 中添加记录。Type 选 A Record,Host 填 stock,Value 填 VPS IPv4,TTL 可先用 Automatic,然后保存。
若 NS 指向 Cloudflare,打开该域名的 DNS → Records,添加 A 记录。初次排错可使用仅 DNS 的模式,先确认源站与证书;开启代理后,公开查询返回的是代理地址,这是预期行为。
不要保留同一个主机名下互相冲突的 CNAME 和 A/AAAA。删除旧记录前先记下值;MX、TXT、DKIM 等邮箱相关记录与网站解析无关,不要顺手清空。
4. 核对权威结果和本地缓存#
dig +short A stock.example.com
dig +short AAAA stock.example.com
dig @1.1.1.1 stock.example.com A
dig @8.8.8.8 stock.example.com A权威 NS 已返回新值、部分递归 DNS 仍是旧值时,多半与缓存 TTL 有关。频繁来回修改会增加判断难度。NXDOMAIN 表示查询名称不存在;返回错误地址则检查主机名是否重复写成 stock.example.com.example.com,或是否改错了 DNS 提供商。
没有可用 IPv6 服务时先别添加 AAAA。浏览器可能优先尝试 IPv6,错误 AAAA 会让一部分用户打不开,即使 A 记录正确。
5. DNS 正确后,再验证网站和 HTTPS#
下面命令让 HTTPS 请求直接连接指定 IP,同时保留正确的域名和 TLS SNI,适合在 DNS 缓存切换前验证自己的源站。
curl --resolve stock.example.com:443:203.0.113.10 -I https://stock.example.com/如果返回错误网站,检查反向代理的域名匹配;连接拒绝则检查监听和防火墙;证书名称不匹配则按HTTPS 配置处理。不要用跳过证书验证作为上线验收方式。
最终分别用电脑和手机打开完整网址,确认首页、文章和静态图片都正常。变更 IP 时继续参考迁移后的检查。
完成后检查
IP 直连成功、域名失败时,从 NS、A/AAAA、缓存、代理和站点域名配置依次查。