检查DNS设置及hosts文件,清理缓存,更换
DNS与Hosts文件故障排查指南
DNS系统基础原理
1 域名解析工作流程
步骤 | 执行主体 | 功能说明 |
---|---|---|
1 | 客户端 | 向Local DNS发送域名查询请求 |
2 | Local DNS | 查询缓存记录 |
3 | 根DNS | 定位顶级域名服务器 |
4 | TLD DNS | 返回权威DNS地址 |
5 | 权威DNS | 提供最终IP解析结果 |
2 常见DNS记录类型
A记录:域名→IPv4地址 AAAA记录:域名→IPv6地址 CNAME记录:别名指向其他域名 MX记录:邮件服务器优先级配置 TXT记录:文本信息存储(验证用途)
DNS典型故障分析
1 域名解析失败的常见原因
-
网络连通性问题
- 现象:所有域名无法解析
- 检测方法:
ping 114.114.114.114
测试基础网络
-
DNS服务异常
| 故障类型 | 特征表现 | 处理方案 |
||||
| 递归DNS宕机 | 特定区域域名解析失败 | 更换DNS服务器 |
| 缓存污染 | 间歇性解析错误 | 清除DNS缓存 |
| 签名验证失败 | SSL站点无法访问 | 检查DNSSEC配置 | -
域名状态异常
- 注册到期未续费
- 域名解析记录被误删除
- CDN调度异常导致IP变动
2 DNS劫持与污染识别
# 检测DNS响应真实性 dig +short example.com @1.1.1.1 nslookup example.com 8.8.8.8 # 比对不同DNS源的解析结果 dig example.com @dns1 dig example.com @dns2
Hosts文件核心机制
1 操作系统适配规则
系统类型 | 文件路径 | 语法规范 |
---|---|---|
Windows | C:WindowsSystem32driversetchosts | 0.0.1 localhost |
macOS/Linux | /etc/hosts | ::1 localhost (支持IPv6) |
Android | /system/etc/hosts | 需Root权限修改 |
2 典型应用场景
-
本地开发环境
- 将
dev.example.com
指向本地服务器IP - 绕过CDN直接访问源站
- 将
-
广告屏蔽
- 重定向广告域名到127.0.0.1
- 示例规则:
0.0.0 doubleclick.net
-
网络加速优化
- CDN节点IP直接写入Hosts
- 注意:需定期更新IP地址
故障排查实战手册
1 DNS问题诊断流程
graph TD A[访问失败] > B{网络连通?} B >|否| C[检查网络设备] B >|是| D{DNS配置正确?} D >|否| E[修改网络适配器设置] D >|是| F{/etc/resolv.conf存在?} F >|否| G[创建配置文件] F >|是| H[测试公共DNS] H > I[验证域名状态]
2 Hosts文件维护要点
-
格式规范
- 每行一条记录,
IP+空格+域名
格式 - 注释行以开头
- 禁止使用Tab缩进
- 每行一条记录,
-
权限管理
- Windows系统:右键→属性→安全→编辑权限
- Linux系统:
chmod 644 /etc/hosts
-
版本控制建议
# 创建版本快照 cp /etc/hosts /etc/hosts.bak.$(date +%F)
高级优化方案
1 智能DNS配置策略
场景需求 | 推荐方案 | 实施要点 |
---|---|---|
防劫持解析 | 阿里AliDNS(223.5.5.5) | 开启DNS over HTTPS |
低延迟优化 | 腾讯DNSPod(119.29.29.29) | 启用IPv6并行查询 |
隐私保护 | Cloudflare(1.1.1.1) | 关闭缓存功能 |
2 Hosts动态管理工具
-
Switcheroo Redirector
- 支持正则表达式匹配
- 提供黑白名单机制
- 可设置定时生效规则
-
HostsSync
- 跨设备自动同步配置
- 云端规则库订阅功能
- 变更历史追踪系统
常见问题预防措施
1 DNS缓存管理规范
# Windows系统 ipconfig /flushdns # macOS/Linux sudo dscacheutil flushcache sudo systemdresolve flushcaches
2 Hosts文件安全加固
Q&A问答专栏
Q1:如何区分DNS故障与网络连接问题?
解答:
- Ping测试:尝试
ping
网关地址(如192.168.1.1),若通则排除网络故障 - Traceroute追踪:使用
tracert www.baidu.com
观察在哪一跳中断 - NSLookup验证:执行
nslookup example.com
查看是否能获得有效IP - 对比测试:在问题设备与正常设备上同时执行
dig
命令比对结果
Q2:修改Hosts文件后不生效怎么办?
解答:
- 缓存刷新:执行
ipconfig /flushdns
清除DNS缓存 - 格式检查:确认无多余空格/TAB,IP与域名顺序正确
- 权限验证:确保当前用户有文件写入权限
- 服务重启:尝试重启网络服务(Windows:
netsh winsock reset
) - 防火墙放行:检查安全软件是否拦截Hosts文件访问
补充说明:在Linux系统修改后,可通过
sudo systemctl restart NetworkManager
重启网络
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/199907.html