# 核心记录类型
DNS 管理界面:“主机记录”(Host/Name)、“记录类型”(Type)、“记录值”(Value/Points to)、“TTL”
| 记录类型 | 主机记录 (Host) | 记录值 (Value) | 用途 |
|---|---|---|---|
| A | www , @ , blog |
一个 IPv4 地址 (如 1.2.3.4 ) |
指向服务器 IP:将域名指向你的网站或服务器 |
| AAAA | www , @ , ipv6 |
一个 IPv6 地址 | 指向 IPv6 地址:功能同 A 记录,用于支持 IPv6 的服务器 |
| CNAME | www , mail |
另一个域名 (如 pages.github.io ) |
设置别名:将一个域名指向另一个域名 |
| MX | @ |
10 mx1.example.com. |
设置邮箱服务器: 10 是优先级(数字越小越高)。可设置多条,实现主备邮箱服务器 |
| TXT | @ , _dmarc |
文本字符串 | 验证与策略:常用于 SPF(防邮件伪造)、DKIM(邮件签名)、DMARC 和域名所有权验证 |
| NS | blog |
ns1.otherprovider.com. |
委派子域名:将子域名的解析管理权交给其他 DNS 服务商。常用于部门或服务独立管理其域名 |
| SRV | _minecraft._tcp.play |
10 5 25565 server.example.com. |
指定服务端口:为特定服务(如 Minecraft、SIP)指定服务器和端口。格式为 优先级 权重 端口 目标 |
| CAA | @ |
0 issue "letsencrypt.org" |
限制证书颁发机构:为提高安全,只允许指定的 CA 为你的域名颁发 SSL 证书 |
| PTR | 1.1.168.192.in-addr.arpa |
mail.example.com. |
反向解析 (IP -> 域名):主要用于邮件服务器反向检查 |
| ALIAS / ANAME | @ |
some-service.provider.com |
根域名别名 (非标):类似 CNAME 但可用于根域名。这是 DNS 服务商提供的特殊功能(如 Cloudflare 的 CNAME Flattening),用于将根域名指向另一个域名 |
注意:
@代表根域名(如example.com)- 根域名 (
@) 通常不能设置CNAME记录PTR通常在你的 IP 提供商(云服务商 / IDC)处配置,而非域名 DNS 服务商处
# 域名与服务器
# 部署网站
假设服务器 IP 是 100.107.102.101 ,域名是 mydomain.com
例:让 mydomain.com 和 www.mydomain.com 都能访问网站
-
设置根域名:添加 A 记录
- 主机记录:
@ - 记录类型:
A - 记录值:
100.107.102.101
- 主机记录:
-
设置 www 子域名:添加 CNAME 记录,将其指向根域名
- 主机记录:
www - 记录类型:
CNAME - 记录值:
mydomain.com
未来更换服务器 IP 时,只需修改 A 记录,
www会自动跟随变化 - 主机记录:
# 反向代理:端口映射
标准的 DNS 记录(A 记录)只能将域名指向 IP 地址,不能直接指定端口。
想让域名映射端口,最正确的做法是配置一个 Web 服务器(Nginx 或 Apache)
例:将域名( service.mydomain.com )指向服务器 8080 端口
- DNS 设置:添加 A 记录,将域名指向服务器 IP 地址
- 主机记录:
service - 记录类型:
A - 记录值:
你的服务器IP
- 主机记录:
- 服务器配置(以 Nginx 为例)
- 当收到访问
service.mydomain.com的请求时,Nginx 会把这个请求转发到你服务器上运行在特定端口(比如 8080)的那个应用 -
Nginx 监听标准的 80/443 端口
- 当收到访问
简单的 Nginx 配置:
server {
listen 80;
server_name service.mydomain.com;
location / {
# 将所有请求转发到本机的 8080 端口
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
当用户通过浏览器访问时,会默认使用 80 (HTTP) 或 443 (HTTPS) 端口
# 反向代理:代理镜像
用户通过访问 Nginx 服务器来访问目标网站,而目标网站的内容会被代理到指定的域名下
DNS 配置同上同理
# 配置示例
以下是一个 Nginx 的配置示例,将请求转发到不同的后端服务:
server {
listen 80;
server_name your-domain.com; # 你的域名
location / {
# 目标网站地址
proxy_pass https://target-website.com;
# 设置代理头信息
proxy_set_header Host target-website.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Accept-Encoding "";
# 禁用缓存以便实时镜像
proxy_buffering off;
# 超时设置
proxy_connect_timeout 30s;
proxy_read_timeout 30s;
}
}
# DNS 高级配置
# NS 记录 - 委派子域名管理权
例:将 blog.mydomain.com 这个子域名交给另一个解析平台或服务来管理(例如 CloudDns 双向解析至 CloudFlare)
- 操作:在
mydomain.com的 DNS 设置中,添加 NS 记录- 主机记录:
blog - 记录类型:
NS - 记录值:
ns1.otherprovider.com(对方提供的 DNS 服务器地址) -
通常需要添加至少两条 NS 记录
- 主机记录:
- 效果:之后所有
blog.mydomain.com及其下级域名(如posts.blog.mydomain.com)的解析请求,都会被导向ns1.otherprovider.com去处理
根域名同理,将主机记录替换为
@即可
# SRV 记录 - 指定服务端口
例:配置 Minecraft 服务器或其他需要指定端口的服务
- 格式:
_服务._协议.主机记录 - 示例:为
play.mydomain.com配置 Minecraft 服务- 主机记录:
_minecraft._tcp.play - 记录类型:
SRV - 记录值 / 数据:
10 5 25565 server.mydomain.com.(优先级 权重 端口 目标主机)
- 主机记录:
- 解释:客户端连接
play.mydomain.com时,会自动查找此 SRV 记录,并连接到server.mydomain.com的25565端口
SRV 记录可以指定服务的端口,但是绝大多数 Web 浏览器不支持通过 SRV 记录来访问网站
SRV 记录主要用于特定协议的客户端自动发现服务,例如 Minecraft 游戏、VoIP 电话 (SIP)、邮件或即时通讯 (XMPP) 等,不适用于通用的 Web 访问
对于网站或 Web 应用,更多的是使用反向代理
# CAA 记录 - 限制 SSL 证书颁发机构
例:为提高安全性,只允许 Let's Encrypt 为你的域名颁发证书
- 操作:添加 CAA 记录
- 主机记录:
@ - 记录类型:
CAA - 记录值 / 数据:
0 issue "letsencrypt.org"
- 主机记录:
- 效果:其他 CA(证书颁发机构)在检查时会看到此记录,并拒绝为你的域名颁发证书