域名解析、TCP 连接、TLS 握手和 HTTP 响应是不同阶段。按层验证比只问“网络通不通”更容易缩小范围。
学习整理:2026-10-29。以下命令、地址和账号均为课程实验示例,按实际环境替换;涉及安装、覆盖配置或服务启停的操作先在隔离环境练习,不代表本站已经实施。
一、DNS解析
DNS将域名转换为IP地址。常见记录:
- A:域名到IPv4。
- AAAA:域名到IPv6。
- CNAME:域名别名。
- MX:邮件服务器。
- TXT:文本验证、邮件策略等。
- NS:权威名称服务器。
二、解析路径
简化过程:
应用缓存
→ 操作系统缓存和hosts
→ 本地DNS解析器
→ 根、顶级域、权威DNS
→ 返回记录并按TTL缓存检查:
getent hosts example.com
dig example.com
dig +trace example.com
dig @指定DNS example.com
resolvectl status
cat /etc/resolv.conf/etc/hosts优先级由/etc/nsswitch.conf控制,不应假设所有环境完全相同。
三、HTTP请求
请求包括:
- 方法:GET、POST、PUT、DELETE等。
- URL。
- 请求头。
- 请求体。
响应包括:
- 状态码。
- 响应头。
- 响应体。
常见状态码:
- 200:成功。
- 301/302:重定向。
- 400:请求格式问题。
- 401:未认证。
- 403:服务器拒绝。
- 404:资源或路由不存在。
- 500:服务内部错误。
- 502:代理没有获得有效上游响应。
- 503:服务不可用。
- 504:代理等待上游超时。
四、curl
curl -v http://example.com/
curl -I https://example.com/
curl -L http://example.com/
curl -o /dev/null -s -w '%{http_code} %{time_total}\n' URL
curl -H 'Content-Type: application/json' \
-d '{"name":"test"}' http://127.0.0.1:8080/api五、HTTPS与证书
HTTPS是HTTP运行在TLS之上,提供加密、完整性和身份验证。
需要理解:
- 证书中的域名必须匹配访问域名。
- 证书有有效期。
- 客户端需要信任签发机构。
- 完整证书链可能包含中间证书。
- 系统时间错误会导致证书验证失败。
检查证书:
openssl s_client -connect example.com:443 -servername example.com
openssl x509 -in cert.pem -noout -subject -issuer -dates六、Web访问排查
dig确认域名
→ curl -v观察连接和状态码
→ 检查证书
→ 检查Nginx访问/错误日志
→ 检查上游应用
→ 检查数据库和依赖隔离环境练习计划
- 用dig查询A、CNAME和NS记录。
- 用curl观察一次HTTP重定向。
- 记录DNS、TCP连接、TLS、首字节和总耗时。
- 查看一个站点证书的域名、颁发者和到期时间。
我的验收重点
先说清每个组件和参数解决的问题,再在实验环境记录正常结果、错误现象与恢复步骤。配置能通过语法检查只是起点,还应验证实际功能。本文保留为学习笔记,不把计划中的多机部署或演练写成本站完成记录。
解析工具与证书验证的边界
resolvectl 只适用于使用相关 systemd-resolved 组件的系统,命令不存在不能据此判断 DNS 损坏。dig 不读取 hosts,getent 走 NSS;浏览器自带缓存或 DoH 也可能不同。openssl s_client 展示链不自动等同完整主机名验收,可结合 -verify_hostname example.com -verify_return_error 与受信任 CA;最终用保持正常校验的 curl 访问实际域名验证。
内容复核与修订:2026-10-29。实验示例与本站运行记录分别说明;原始归档日期保留。
评论 (0)