全部文章

DNS 与 Hosts 配置

DNS 服务器推荐、Hosts 文件编辑、DNS 加密与常见问题排查

目录 20 节

DNS 与 Hosts 配置

这页适合做“域名解析与本机覆盖的入门排障手册”。很多网络问题看起来像代理、像防火墙、像服务端故障,最后其实只是 DNS 解析不对,或者 hosts 把结果覆盖掉了。

先理解 DNS 和 Hosts 的区别

  • DNS:向解析服务器查询域名对应 IP,适合日常联网和全局解析
  • Hosts:本机强制指定域名解析结果,优先级通常高于 DNS

简单理解:

  • 想让整台机器都走某个公共解析服务,用 DNS
  • 想在本机临时把某个域名指向测试环境,用 hosts

推荐 DNS 服务器

服务商IPv4IPv6说明
Cloudflare1.1.1.1 / 1.0.0.12606:4700:4700::1111速度快,隐私优先
Google8.8.8.8 / 8.8.4.42001:4860:4860::8888稳定可靠
阿里 DNS223.5.5.5 / 223.6.6.62400:3200::1国内推荐
腾讯 DNS119.29.29.292402:4e00::国内备选

修改 DNS

Windows GUI

设置 → 网络和 Internet → 以太网/Wi-Fi → DNS 服务器分配 → 编辑

PowerShell

# 查看当前 DNS
Get-DnsClientServerAddress

# 设置 DNS(需管理员)
Set-DnsClientServerAddress -InterfaceAlias "以太网" -ServerAddresses ("1.1.1.1", "8.8.8.8")

# 恢复自动获取
Set-DnsClientServerAddress -InterfaceAlias "以太网" -ResetServerAddresses

Hosts 文件

路径:C:\Windows\System32\drivers\etc\hosts

编辑方式

# 用记事本编辑(需管理员)
notepad C:\Windows\System32\drivers\etc\hosts

# 或使用 PowerToys Hosts File Editor(推荐)

常用配置

# 屏蔽广告域名
0.0.0.0 ads.example.com

# 本地开发
127.0.0.1 myapp.local
127.0.0.1 api.myapp.local

# GitHub 加速(IP 可能变化,需定期更新)
# 通过 https://ping.chinaz.com/github.com 查询最快 IP
140.82.114.4 github.com

刷新 DNS 缓存

修改 hosts 后需要刷新:

ipconfig /flushdns

DNS over HTTPS (DoH)

加密 DNS 查询,防止 DNS 劫持。

Windows 11 原生支持

设置 → 网络 → 以太网 → DNS → 选择加密模式:

  • Cloudflare DoH:https://cloudflare-dns.com/dns-query
  • Google DoH:https://dns.google/dns-query
  • 阿里 DoH:https://dns.alidns.com/dns-query

命令行配置

# 添加 DoH 服务器(需管理员)
Add-DnsClientDohServerAddress -ServerAddress "1.1.1.1" -DohTemplate "https://cloudflare-dns.com/dns-query" -AllowFallbackToUdp $true -AutoUpgrade $true

DNS 排查

# 查询域名解析
nslookup example.com
Resolve-DnsName example.com

# 指定 DNS 服务器查询
nslookup example.com 1.1.1.1

# 查看 DNS 缓存
Get-DnsClientCache | Select-Object Entry, Data

# 清除缓存
Clear-DnsClientCache

推荐使用顺序

遇到解析问题时,建议按这个顺序排:

  1. 先用 nslookup / Resolve-DnsName 看实际解析结果
  2. 再检查本机 hosts 是否覆盖
  3. 然后确认网络、DNS 缓存或路由器设置是否影响查询
  4. 最后再考虑切换 DNS 服务商或启用 DoH

不要一上来就改 hosts 或乱换 DNS,不然排障链路会更混乱。

常见问题

改了 hosts 还是没生效

优先检查:

  • 是否以管理员身份保存了文件
  • 是否执行了 ipconfig /flushdns
  • 浏览器或本地 DNS 是否有额外缓存
  • 域名是否走了 HTTPS 证书校验或 CDN 策略,导致“能解析但访问仍异常”

DNS 很慢或偶发失败

可以尝试:

  • 换一组更稳定的 DNS
  • 打开 DoH
  • 排查本地 DNS、hosts、路由器自带解析是否干扰

本地开发域名打不开

如果你把 myapp.local 指向 127.0.0.1,还要确认:

  • 本地服务是否真的监听该端口
  • 应用是否允许这个 Host
  • 浏览器缓存和 HSTS 是否影响访问

延伸阅读

参考链接

阅读建议
  • - 先读标题和摘要,再结合目录决定从哪个章节开始精读。
  • - 看到具体命令、配置或步骤时,尽量在自己的环境里同步验证。
  • - 如果你只是快速查资料,可先看目录和相关文档,再决定是否深入全文。
适合谁看
  • - 希望把零散经验整理成长期可复用工作流的人
  • - 需要处理网络链路或基础安全配置的人
  • - 希望阅读时顺手建立自己的操作清单或收藏体系的人
执行前检查
  • - 先浏览标题、摘要和目录,带着问题阅读会更高效
  • - 确认当前网络拓扑、路由权限以及是否会影响其他设备访问
  • - 如果页面里提到相关文档,尽量一起打开对照,效果通常更完整
同类内容
← 上一篇Cron 定时任务