Linux 中DNS更新流程

发布时间:2026/10/27 22:42:04
Linux 中DNS更新流程 1. Linux处理流程1NetworkManager负责监听网络状态比如你连上了 Wi-Fi。2它通过 DHCP 从路由器拿到 IP 和 DNS 后不会直接去乱改/etc/resolv.conf。3相反它把这些 DNS 地址交给了systemd-resolved。4systemd-resolved把自己设为本地代理即127.0.0.53然后把从 NetworkManager 那里收到的真实 DNS 地址比如路由器的或者公共 DNS记在自己的后台里。5/etc/resolv.conf此时只是一个软链接稳稳地指向systemd-resolved的存根文件内容永远是nameserver 127.0.0.53。命令cat/etc/resolv.conf1.1 整体查询流程当你尝试访问一个网站比如google.com时路径是这样的你的应用/浏览器发起 DNS 请求。请求发送给本地的127.0.0.53(/etc/resolv.conf指定的。systemd-resolved收到后通过你的网卡ens16np0转发给真正的 DNS 服务器10.72.66.37。10.72.66.37返回结果再经由本地代理传回给你的应用程序2. 查看systemd-resolvedsystemctl status systemd-resolved2.1 resolvectl命令命令resolvectl查看上游的DNS从DHCP服务器获取到的上游的DNS服务器地址10.72.66.37。这样再去访问github.com时返回一个私有的局域网地址172.18.0.35。这个地址是错误的。2.2 重启服务# 重启服务sudo systemctl restart systemd-resolved# 清除 DNS 缓存sudo resolvectl flush-caches3. 查询DNS命令nslookup name server lookup是一个用于查询 DNS域名系统记录的网络管理命令行工具。它可以用来诊断域名解析是否正常。3.1 默认dnsnslookup github.com命令nslookup github.com作用系统会默认使用当前连接的网络比如路由器或公司的 DNS去查询结果。172.18.0.35是一个私有的局域网地址。3.2 指定dnsnslookup github.com 223.5.5.5命令nslookup github.com 223.5.5.5作用指定使用阿里云的公共 DNS 服务器IP地址为223.5.5.5去查询域名github.com的 IP 地址解析记录。20.205.243.166是一个公网的地址。如果换个dns就能访问就说明是dns的问题。3.3 修复DNS的方法3.3.1 修改resolved.confvim /etc/systemd/resolved.conf修改为[Resolve]DNS223.5.5.5 119.29.29.29FallbackDNS8.8.8.8 1.1.1.13.3.2 重启服务并清理缓存# 重启服务sudo systemctl restart systemd-resolved# 清除本地 DNS 缓存sudo resolvectl flush-caches

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询