一、💡 一句话理解
核心结论
域名是网站在互联网上的“地址”,IP 地址是服务器的“门牌号”,DNS 负责把域名翻译成 IP 地址,让用户输入域名后找到服务器上的 Quartz 博客。
相关笔记:6.CDN加速
二、🧭 理论:域名、IP 和服务器是什么
2.1 域名是什么
域名(Domain Name)是方便人记忆的网站地址,例如:
afyke.com
blog.afyke.com直接记 IP 地址比较困难,而且服务器更换 IP 后,所有人都需要记住新的地址。域名把这件事隔离开了:用户记住域名,DNS 负责找到当前服务器。
可以把它理解为:
| 名词 | 生活中的比喻 | 实际作用 |
|---|---|---|
| 域名 | 店铺名称 | 方便用户记忆和访问 |
| IP 地址 | 店铺的具体地址 | 定位网络中的服务器 |
| DNS | 查地址的通讯录 | 把域名转换成 IP 地址 |
| 服务器 | 真正营业的店铺 | 保存并返回网站内容 |
2.2 IP 地址是什么
IP 地址是网络设备的数字地址。公网服务器通常会有一个可以从互联网访问的公网 IP,例如:
47.99.178.186上面的地址只是示例。配置自己的域名时,应填写服务器实际的公网 IP,不要直接照抄示例。
常见 IP 类型有:
| 类型 | 说明 |
|---|---|
| 公网 IP | 互联网用户可以访问的服务器地址 |
| 内网 IP | 只在局域网或云平台内部使用的地址 |
| IPv4 | 例如 47.99.178.186,目前最常见 |
| IPv6 | 新一代 IP 地址,格式通常更长 |
域名必须解析到用户能够访问的公网地址。把域名解析到内网 IP,公网用户通常无法访问。
2.3 服务器是什么
服务器是一台长期联网的计算机。对于当前 Quartz 博客来说,它主要负责:
- 保存 Quartz 构建后生成的静态网页文件。
- 接收浏览器请求,并把网页文件返回给访问者。
当前博客的基本关系是:
部署流程:
Markdown 笔记
↓
Quartz 构建
↓
生成 public 静态文件
↓
上传到服务器网站目录用户访问流程:
用户在浏览器输入域名
↓
DNS 将域名解析为服务器公网 IP
↓
浏览器通过 HTTP 或 HTTPS 请求服务器
(HTTP 通常使用 80 端口,HTTPS 通常使用 443 端口)
↓
Web 服务器根据域名找到对应的网站目录
↓
返回 public 目录中的静态文件
↓
浏览器渲染并展示 Quartz 博客相关笔记:
2.4 国外服务器购买地址
如果不想使用中国大陆服务器,可以直接从下面这些海外云服务器厂商购买一台 VPS(虚拟服务器)。它们都可以安装 Ubuntu、Nginx 或 Caddy,用来存放 Quartz 构建后的 public 静态文件。
| 服务商 | 官方购买/开通地址 | 适合人群 | 说明 |
|---|---|---|---|
| DigitalOcean Droplets | 购买 Droplet | 新手、个人博客 | 控制台和文档比较直观,适合第一次购买海外 VPS。 |
| Hetzner Cloud | 购买 Cloud Server | 想控制成本的人 | 性价比较高,购买时可选择可用的数据中心地区。 |
| Vultr Cloud Compute | 购买 Cloud Compute | 需要较多地区选择的人 | 支持按小时或按月计费,具体地区和套餐以页面为准。 |
| Akamai Cloud(原 Linode) | 购买云服务器 | 想要稳定文档和成熟平台的人 | Linode 品牌已并入 Akamai,原有云服务器产品仍可使用。 |
| Amazon Lightsail | 购买 Lightsail | 已经在使用 AWS 的人 | 套餐式计费,和 AWS 其他服务衔接方便,但控制台相对复杂。 |
| Oracle Cloud | 开通免费套餐 | 想先免费试用的人 | 提供 Always Free 资源,但有区域容量、账号验证和使用限制。 |
Quartz 博客的最低配置建议
个人博客一般不需要购买高配置服务器,优先选择下面的配置即可:
| 配置项 | 建议 |
|---|---|
| 系统 | Ubuntu 22.04 LTS 或 Ubuntu 24.04 LTS |
| CPU | 1 vCPU 起步 |
| 内存 | 1 GB 起步,建议 2 GB |
| 硬盘 | 25 GB SSD 起步 |
| 公网 IPv4 | 必须有,用于配置域名 A 记录 |
| 数据中心 | 选择距离主要访问用户较近的地区 |
个人博客优先推荐
如果只是部署当前 Quartz 博客,可以优先比较 Hetzner Cloud、DigitalOcean 和 Vultr。先购买最低配置即可,后续访问量增加后再升级,不需要一开始购买高配服务器。
购买时需要重点记录:
服务器厂商:<PROVIDER>
服务器地区:<REGION>
公网 IPv4:<SERVER_IP>
登录用户名:通常为 root 或 ubuntu
SSH 私钥:仅保存在自己的电脑,不要上传到笔记或聊天中购买前注意
以上是海外厂商官方入口,价格、可用地区、付款方式、IPv4 费用和账号审核规则可能变化,最终以购买页面为准。购买服务器后还要完成系统初始化、防火墙配置、网站部署、域名解析和 HTTPS 配置;服务器本身不会自动绑定域名。
三、⚙️ 理论:DNS 是怎么工作的
DNS 的全称是 Domain Name System(域名系统)。它的作用是把人容易记住的域名转换成计算机使用的 IP 地址。
用户访问:
https://blog.afyke.com浏览器大致经历以下过程:
浏览器请求 blog.afyke.com
↓
查询 DNS 记录
↓
得到服务器公网 IP
↓
浏览器通过 HTTP 或 HTTPS 请求服务器
(HTTP 通常使用 80 端口,HTTPS 通常使用 443 端口)
↓
服务器返回 Quartz 网页如果用户访问的是 http://blog.afyke.com,服务器通常会先通过 HTTP 的 80 端口接收请求,再返回跳转响应,引导浏览器访问 https://blog.afyke.com。之后,浏览器会通过 HTTPS 的 443 端口重新请求网站内容。
DNS 解析记录中最常见的是:
| 记录类型 | 作用 | 常见用途 |
|---|---|---|
| A | 把域名指向 IPv4 地址 | blog.afyke.com → 47.99.178.186 |
| AAAA | 把域名指向 IPv6 地址 | 域名 → IPv6 地址 |
| CNAME | 把一个域名指向另一个域名 | www.afyke.com → afyke.com |
| TXT | 保存文本验证信息 | 域名所有权验证等 |
| MX | 指定邮件服务器 | 接收域名邮箱邮件 |
最小配置
如果只是把一个域名绑定到一台 IPv4 服务器,通常只需要配置一条 A 记录。
3.1 根域名和子域名
假设购买的域名是:
afyke.com它可以拆成:
- 根域名:afyke.com
- 子域名:www.afyke.com
- 博客子域名:blog.afyke.com
常见设计有两种:
afyke.com → 博客首页
www.afyke.com → 同一个博客或者:
afyke.com → 其他用途
blog.afyke.com → Quartz 博客如果只是搭建个人博客,使用根域名或 blog 子域名都可以。关键是提前确定对外使用哪个地址,并让 Quartz 的 baseUrl 与最终访问地址保持一致。
3.2 DNS 生效不是立即完成的
DNS 记录通常带有 TTL(缓存时间)。修改记录后,不同地区、不同网络的 DNS 缓存更新时间可能不同,因此可能出现:
- 自己的电脑已经可以访问,别人的网络还不行。
- 根域名已经生效,www 子域名还没有生效。
- 浏览器仍然打开旧服务器。
这不一定代表配置错误。应先检查记录是否正确,再等待缓存逐步更新。
四、🚀 实践:从购买域名到绑定服务器
先看全流程
部署流程:修改 Markdown 笔记 → Quartz 构建 → 生成
public静态文件 → 上传至服务器网站目录。访问流程:用户输入域名 → DNS 解析到服务器公网 IP → Web 服务器根据域名找到网站目录 → 返回静态文件 → 浏览器渲染页面。
域名解析、服务器网站配置、HTTPS 和 Quartz 的 baseUrl 是部署前需要完成的配置;完成这些配置后,后续每次更新博客,通常只需要重新构建并部署 public 目录。
4.1 第一步:选择并注册域名
选择域名时,优先考虑:
- 简短,方便输入和口头告知。
- 拼写清楚,尽量避免连续多个连字符。
- 与博客内容或个人品牌有关。
- 确认自己拥有域名管理权限。
- 记录注册商账号、续费时间和域名到期时间。
域名注册商、价格、实名或备案要求会因地区、后缀和政策变化,购买前应以注册商当前页面和所在地要求为准。
如果目标是“便宜、可靠、适合个人博客”,可以优先考虑以下平台。价格会受促销、汇率、税费和域名是否属于溢价域名影响,实际以购买页面为准。
- Cloudflare Registrar:
.com按注册局成本价收费,并提供隐私保护和 DNSSEC。使用 Cloudflare Registrar 注册的域名必须使用 Cloudflare DNS,不能改用其他 DNS 服务商。官方说明 - Porkbun:价格较透明,并提供隐私保护。官方价格
- Spaceship:适合比较看重价格的人。官方价格
- 阿里云万网:如果服务器在中国大陆并准备办理 ICP 备案,国内支付、客服和备案流程衔接更方便。阿里云域名价格
太他妈恶心了,还要ICP备案,各种证件上传,甚至还提供600块每次的备案服务,尽量别使用中国的服务器
Cloudflare DNS 和其他 DNS 有什么区别
可以把这几个概念理解成:
| 名词 | 通俗理解 | 负责什么 |
|---|---|---|
| 域名注册商 | 卖网站地址的地方 | 注册和续费域名 |
| DNS 服务商 | 管理地址通讯录的地方 | 把域名指向服务器 IP |
| 服务器 | 真正存放网站的地方 | 保存并返回 Quartz 网页 |
例如:
afyke.com → 服务器公网 IP这条记录既可以在 Cloudflare DNS 中配置,也可以在阿里云 DNS、腾讯云 DNS 等服务中配置。对于个人博客最常用的 A 记录来说,它们的基本作用是一样的。
它们的主要区别在于:
- DNS 管理页面不同,操作方式不同。
- DNS 服务商的网络、稳定性和解析速度可能不同。
- Cloudflare 可以额外提供 CDN、缓存和基础安全防护。
- 国内云厂商通常更方便地和国内服务器、备案及其他云服务配合。
费用方面,基础 DNS 解析通常可以免费使用;真正需要付费的一般是域名注册和续费。部分高级功能,例如更高规格的安全防护、服务保障或复杂的线路解析,可能需要单独付费。
如果域名是在 Cloudflare Registrar 注册的,就必须使用 Cloudflare DNS;如果域名是在其他注册商购买的,则可以根据需要选择 Cloudflare DNS 或其他 DNS 服务商。Cloudflare Registrar 的域名注册费用和 DNS 服务是两回事,使用 Cloudflare DNS 不代表网站必须部署在 Cloudflare 上。
如果服务器在中国大陆,正式通过域名提供网站服务通常还需要办理备案。工信部备案说明
4.2 第二步:确认服务器公网 IP
在服务器管理面板中找到公网 IPv4 地址,记为:
你的服务器公网 IPv4:<SERVER_IP>不要把以下地址当作公网 IP:
127.0.0.1
localhost
192.168.x.x
10.x.x.x
172.16.x.x 到 172.31.x.x这些通常是本机回环地址或内网地址,互联网用户无法通过它们访问你的服务器。
关键判断
能在服务器本机访问,不代表互联网用户能访问。域名解析必须指向用户可以到达的公网 IP。
4.3 第三步:添加 A 记录
这一步的目的,是告诉 DNS:
blog.afyke.com 应该去哪里找?
→ 去你的服务器公网 IP 找不需要购买付费 DNS 实例
阿里云的免费 DNS 就可以添加 A 记录。页面上的“购买实例”是付费升级选项,个人 Quartz 博客暂时不用购买。
4.3.1 先找到服务器公网 IP
如果服务器是阿里云 ECS,可以进入:
阿里云控制台
→ 云服务器 ECS
→ 实例
→ 找到“公网 IPv4”假设查到的公网 IPv4 是:
47.99.178.186这里只是示例,实际操作时要填写你自己的公网 IPv4,不要直接照抄这个地址。
4.3.2 确认域名正在使用阿里云 DNS
在阿里云域名控制台的“域名列表”中,找到 afyke.com 这一行,直接点击右侧操作栏的蓝色 “解析”,不要寻找“DNS 设置”按钮。
进入解析页面后,再点击“解析设置”或“添加记录”,就可以配置 A 记录。
如果阿里云 DNS 页面提示“当前域名的 NS 地址与云解析系统分配的 NS 地址不一致”,说明域名目前还没有使用阿里云分配的 DNS。
阿里云会为域名分配 DNS 服务器地址,例如:
dns7.hichina.com
dns8.hichina.com具体地址以页面实际显示为准,不要直接照抄上面的示例。只有域名当前使用的 DNS 服务商,添加的解析记录才会真正生效。
如果页面仍然提示 DNS 地址不一致,再进入域名管理相关页面修改 DNS 服务器,将它改为阿里云页面实际分配的地址:
域名列表
→ afyke.com
→ 右侧操作栏“管理”或 DNS 服务器设置
→ 修改 DNS 服务器修改后保存并等待生效。
如果你打算使用其他 DNS 服务商,就不要修改这里,而是到实际正在使用的 DNS 服务商那里添加 A 记录。只有域名当前使用的 DNS 服务商,添加的记录才会真正生效。
截图中的“未实名”
截图显示
afyke.com的状态是“未实名”。这表示域名实名认证还没有完成,需要先在“信息模板”中完成实名认证;否则后续可能无法正常续费,域名也可能被暂停解析。实名认证和 DNS 解析是两件不同的事情,但建议先完成实名认证。
4.3.3 添加 blog.afyke.com 的 A 记录
进入:
云解析 DNS
→ 公网权威解析
→ afyke.com
→ 解析设置
→ 添加记录填写下面这些内容:
| 主机记录 | 记录类型 | 记录值 |
|---|---|---|
| blog | A | 你的服务器公网 IPv4 |
完整填写示例:
| 字段 | 填写内容 |
|---|---|
| 记录类型 | A |
| 主机记录 | blog |
| 解析请求来源 | 默认 |
| 记录值 | 你的服务器公网 IPv4 |
| TTL | 默认,通常为 10 分钟 |
这里的 blog 表示子域名前缀,完整域名就是 blog.afyke.com。
假设服务器公网 IPv4 是 47.99.178.186,最终效果就是:
blog.afyke.com → 47.99.178.186填写完成后点击“确定”或“确认”。
4.3.4 可选:让根域名也能访问博客
如果还想让根域名 afyke.com 也访问同一个博客,再额外添加一条 A 记录:
| 主机记录 | 记录类型 | 记录值 |
|---|---|---|
| @ | A | 47.99.178.186 |
这条记录表示:
afyke.com → 47.99.178.186如果你只打算使用 blog.afyke.com,这一条可以暂时不添加。
4.4 第四步:验证 DNS 解析
在本机终端执行:
dig +short blog.afyke.com如果还配置了根域名,再检查:
dig +short afyke.com期望结果是看到服务器实际公网 IP:
<SERVER_IP>也可以使用:
nslookup blog.afyke.com如果结果为空或还是旧 IP,先检查记录名称、记录类型和记录值,再考虑 DNS 缓存尚未更新。
验证通过的标志
dig +short blog.afyke.com能返回服务器实际公网 IP,说明 DNS 这一层已经基本打通;这还不代表网站绑定和 HTTPS 已经完成。
4.5 第五步:在服务器上配置网站域名
DNS 只负责“找到服务器”,服务器还需要知道这个域名应该交给哪一个网站目录处理。
以当前 Quartz 博客为例,服务器需要将域名绑定到存放构建结果的目录:
/www/AfykeBlog/afyke-blog如果使用宝塔、Nginx 或 Caddy 等工具,需要在网站配置中填写:
- 网站域名:blog.afyke.com
- 网站根目录:/www/AfykeBlog/afyke-blog
核心关系是:
域名 → 服务器公网 IP → 网站配置 → Quartz 静态文件目录4.5.1 多个域名可以共用一台服务器吗
可以。多个域名可以解析到同一个服务器 IP,例如:
afyke.com → 47.99.178.186
blog.afyke.com → 47.99.178.186这表示两个地址都能找到同一台服务器,但不代表它们会自动对应两个不同的网站。
服务器上的 Nginx、Caddy 或宝塔需要根据用户访问的域名,决定返回哪个网站:
blog.afyke.com
→ /www/AfykeBlog/afyke-blog
other.com
→ /www/OtherSite如果服务器没有配置域名和网站目录的对应关系,多个域名可能都会打开同一个默认网站。
需要注意,afyke.com 是根域名,blog.afyke.com 是它的子域名;如果是两个完全不同的域名,配置方式也是一样的。
4.5.2 端口 100 应该怎么处理
DNS 记录中只能填写 IP,不能填写端口:
正确:47.99.178.186
错误:47.99.178.186:100如果网站程序目前运行在服务器的 100 端口,直接访问时需要写端口:
http://blog.afyke.com:100如果希望用户直接访问下面这种地址:
https://blog.afyke.com就需要让 Nginx 或 Caddy 监听标准的 80/443 端口,再把请求转发到内部的 100 端口。对于 Quartz 静态网站,也可以让 Nginx 或 Caddy 直接读取网站根目录,这样通常不需要单独使用 100 端口。
4.6 第六步:配置 HTTPS
HTTPS 是加密后的 HTTP。配置完成后,用户通过下面的地址访问:
https://blog.afyke.com服务器通常需要为域名申请 TLS 证书。证书申请前,域名一般需要已经解析到正确的服务器,并且服务器能够接收相关验证请求。
配置 HTTPS 后应检查:
- http://blog.afyke.com 是否能跳转到 HTTPS。
- 浏览器地址栏是否显示安全连接。
- 页面中的图片、脚本和样式是否仍然使用 HTTP 地址。
- www 和根域名是否按照预期跳转或统一。
不要把“DNS 已经解析成功”误认为“HTTPS 已经配置完成”。DNS、网站绑定和证书是三个不同步骤。
4.7 第七步:修改 Quartz 的 baseUrl
Quartz 需要知道博客最终对外使用的域名。应在 Quartz 配置文件中将 baseUrl 设置为实际域名,例如:
baseUrl: blog.afyke.com通常不要在 baseUrl 末尾增加 /,也不要把完整的 https:// 重复写入,具体格式以当前 Quartz 配置文件和版本说明为准。
修改后重新构建博客:
npx quartz build然后按照现有部署方式,把新的 public 目录同步到服务器:
部署流程:
Markdown 笔记
↓
Quartz build
↓
生成 public
↓
rsync 或 GitHub Actions 部署部署完成后的访问流程:
用户输入博客域名
↓
DNS 解析到服务器公网 IP
↓
Web 服务器将请求转发到博客网站目录
↓
返回 public 中的静态文件
↓
浏览器展示博客页面五、🔍 最小例子:把 blog.afyke.com 指向 Quartz 博客
假设当前条件如下:
根域名:afyke.com
博客域名:blog.afyke.com
服务器公网 IPv4:<SERVER_IP>
服务器网站目录:/www/AfykeBlog/afyke-blog
博客访问地址:https://blog.afyke.com5.1 DNS 配置
添加:
主机记录:blog
记录类型:A
记录值:<SERVER_IP>5.2 服务器网站配置
将网站域名配置为:
blog.afyke.com将网站根目录配置为:
/www/AfykeBlog/afyke-blog然后申请并启用 HTTPS 证书。
5.3 Quartz 配置
将 baseUrl 设置为:
baseUrl: blog.afyke.com重新构建并部署:
npx quartz build最后验证:
dig +short blog.afyke.com
curl -I https://blog.afyke.com如果 dig 返回正确 IP,curl 返回正常的 HTTP 响应,并且浏览器可以打开博客,说明从域名到 Quartz 网站的链路基本打通。
六、⚠️ 边界与常见误区
购买域名不会自动得到服务器。域名只是地址,仍然需要服务器或静态托管平台保存并提供网站文件。
DNS 只能把域名指向 IP。服务器还需要配置网站域名、网站根目录和 Web 服务,否则即使解析正确,也可能看到默认页面或连接失败。
A 记录的值应该是 IP 地址:
正确:47.99.178.186
错误:https://afyke.com
错误:afyke.com如果要把一个域名指向另一个域名,应考虑 CNAME,而不是把域名文本填进 A 记录。
网站通常至少需要允许外部访问 HTTP 和 HTTPS 端口。若 DNS 正确但浏览器仍然连接超时,应检查:
- 云服务器安全组。
- 服务器防火墙。
- Nginx、Caddy 或宝塔网站是否正常运行。
- HTTP/HTTPS 端口是否监听。
如果服务器公网 IP 会变化,域名会再次指向旧地址。生产环境应使用稳定的公网 IP,或配置可靠的动态 DNS 方案。
解析成功只说明“域名找到了服务器”,不代表 HTTPS 证书已经正确。证书失效、域名不匹配或混合内容都可能导致浏览器警告。
afyke.com 与 blog.afyke.com 是两个不同的域名。当前博客使用 blog.afyke.com 作为主地址;如果以后还想让根域名访问博客,需要另外配置根域名的 DNS 记录和网站绑定,并决定是否跳转到博客主地址。
七、📌 总结
弄一个域名并让用户访问 Quartz 博客,本质上包含两条链路。
部署流程:
Markdown 笔记
↓ Quartz 构建
public 静态文件
↓ 上传
服务器网站目录访问流程:
用户输入域名
↓ DNS 解析
服务器公网 IP
↓ Web 服务器匹配域名
网站根目录中的 public 静态文件
↓ 返回文件
浏览器渲染 Quartz 博客最小记忆方法:
- 注册一个域名。
- 用 A 记录把域名指向服务器公网 IP。
- 在服务器上把域名绑定到 Quartz 的网站目录。
- 配置 HTTPS。
- 将 Quartz 的
baseUrl改成域名,重新构建并部署。
一句话总结
域名负责让人找到网站,DNS 负责指路,服务器负责提供网页,Quartz 负责生成网页。