域名怎样找到 VPS:DNS、HTTPS 与反向代理入门
面向新手解释域名、DNS A 与 AAAA 记录、端口、反向代理、TLS 证书和 HTTPS 如何把浏览器请求送到 VPS 上的应用。
在 VPS 本机用 curl http://127.0.0.1:3000 看到网页,只能证明应用在服务器内部工作。要让普通读者通过 https://example.com 访问,还需要把域名、DNS、网络端口、反向代理和 HTTPS 串起来。
这些词经常出现在同一篇教程里,但它们解决的是不同问题。
一、先看一条完整请求
用户输入域名
↓ DNS 查询
得到服务器 IP
↓ TCP 443 + TLS
连接 VPS 上的反向代理
↓ 转发到 127.0.0.1:3000
应用返回页面可以把它们理解成:
| 组件 | 类比 | 真正职责 |
|---|---|---|
| 域名 | 容易记的名称 | 给网站一个稳定的人类可读入口 |
| DNS | 通讯录 | 把名称解析成 IP 等记录 |
| IP 地址 | 建筑地址 | 找到互联网上的主机或网络接口 |
| 端口 | 大楼里的入口编号 | 把连接交给对应网络服务 |
| 反向代理 | 前台 | 接收公网请求并转给内部应用 |
| TLS 证书 | 可验证的身份文件 | 让客户端验证域名身份并协商加密连接 |
DNS 不会保存或传输你的网页,证书也不会把域名“指向”服务器。每一层都要分别配置和验证。
二、常见 DNS 记录是什么
| 记录 | 常见用途 | 新手注意点 |
|---|---|---|
A | 名称指向 IPv4 地址 | 地址改变时要同步更新 |
AAAA | 名称指向 IPv6 地址 | 服务器没配置好 IPv6 就不要留下错误记录 |
CNAME | 一个名称指向另一个名称 | 通常不能与同名的其他记录随意共存 |
TXT | 域名验证、邮件策略等文本 | 不要粘贴来源不明的验证值 |
例如,想让 www.example.com 指向一台有公网 IPv4 的 VPS,通常会添加一条 A 记录。具体名称、根域写法和代理开关由 DNS 服务商界面决定,应以它的文档为准。
DNS 修改不会保证所有人瞬间看到新结果。递归解析器和客户端会按照 TTL 缓存记录,所以迁移时要预留缓存过渡期,而不是看到自己电脑生效就立刻删除旧服务器。
三、为什么经常需要反向代理
一台 VPS 可以同时运行多个应用,例如:
blog.example.com → 127.0.0.1:3000
api.example.com → 127.0.0.1:4000反向代理(例如 Nginx 或 Caddy)监听公网的 80/443,根据域名把请求交给不同的内部应用。它还常负责 TLS 终止、请求日志、压缩和部分安全限制。
这样做的好处是,应用不用各自直接暴露公网端口。对新手而言,也更容易把“公网入口”和“应用运行”分开排查:
- 应用先在本机地址验证;
- 反向代理再验证到应用的转发;
- 最后才检查 DNS 和外部 HTTPS。
反向代理不是匿名工具,也不会自动修复应用漏洞。它只是请求链条中的一个服务。
四、HTTPS 保护了什么
HTTPS 是 HTTP 通过 TLS 建立的安全连接。正常验证成功时,它主要提供:
1. 客户端可以验证证书是否对当前域名有效; 2. 传输内容经过加密,旁路观察者不容易直接读取; 3. 传输中内容被篡改时可以被发现。
HTTPS 不会证明网站经营者一定可信,也不会让有漏洞的应用变安全。它保护的是连接,不是对所有内容作担保。
Let’s Encrypt 等证书颁发机构可以通过 ACME 自动签发和续期证书。签发前需要用选定的挑战方式证明你控制域名,但不同方式的网络条件并不相同:
HTTP-01通过指定的 HTTP 路径验证,需要验证服务器能经公网端口 80 访问;DNS-01通过 DNS TXT 记录验证,不要求 Web 服务器开放 80 或 443;TLS-ALPN-01通过端口 443 上的特殊 TLS 连接验证。
新手常见的 Web 服务器流程会使用 HTTP-01,但应先看所用 ACME 客户端和部署平台实际选择了哪一种挑战,不能把三种条件混成一条规则。
五、适合新手的搭建顺序
1. 在 VPS 本机启动应用,让它只监听预期的本机地址; 2. 用本机请求验证应用内容和端口; 3. 安装并配置来自官方来源的反向代理; 4. 先检查反向代理配置语法,再启动或重载; 5. 添加正确的 DNS 记录,并用公共解析结果复核; 6. 确认防火墙允许网站实际需要的端口;如果使用 HTTP-01,验证期间必须能从公网访问 80; 7. 通过受信任的 ACME 客户端申请证书,并核对它使用的挑战类型; 8. 从 VPS 之外访问 HTTPS,检查证书域名、状态码和页面; 9. 验证自动续期机制,而不是等证书快过期才处理。
选择 Nginx、Caddy 或其他反向代理时,应跟随该软件当前官方文档,不要混用多年前博客里的配置片段。
六、常见故障按层排查
域名解析到旧地址
检查权威 DNS 记录、TTL 和本地缓存。不要先重装 Web 服务,因为请求可能根本没有到新 VPS。
IPv4 正常,部分用户仍打不开
检查是否存在错误的 AAAA 记录。支持 IPv6 的客户端可能优先尝试它,而你的 VPS 或防火墙并未正确配置 IPv6。
反向代理显示 502
通常表示前台收到了请求,但无法正常连接后端。检查应用进程、监听地址、端口和本机请求。
证书申请失败
先查看 ACME 客户端选择的挑战类型和具体错误:HTTP-01 检查域名解析与公网 80,DNS-01 检查 TXT 记录和 DNS API 权限,TLS-ALPN-01 检查公网 443;同时确认系统时间正常。
HTTPS 正常但应用端口也能公网访问
检查应用是否监听所有接口,以及云防火墙和系统防火墙是否放行了后端端口。只需要反向代理访问时,后端通常不必暴露公网。
七、总结
域名、DNS、HTTPS 和反向代理不是四个互相替代的选项,而是一条请求链上的不同岗位:DNS 帮用户找到 IP,网络把连接送到 443,TLS 建立经过身份验证的加密连接,反向代理再把请求交给内部应用。
排查时沿着这条链逐层验证,比反复“清缓存、重装、重启”更可靠。
常见问题
只有 IP,没有域名,可以使用 HTTPS 吗?
技术上存在面向 IP 地址证书等不同场景,但普通个人网站通常使用域名证书。域名也让以后迁移服务器时不必要求用户记住新 IP。
DNS 服务商开启代理后,链条会有什么变化?
客户端可能先连接 DNS 服务商的边缘网络,再由它连接源站。缓存、TLS、真实来源地址和防火墙规则都会多一层,应查看该服务商的当前官方文档。
证书申请成功后就不用管了吗?
不是。短期证书依赖自动续期,需要监控续期任务与到期时间,并实际测试续期流程。
参考来源
Share