[Linux] Linux 域名解析过程:Hosts 文件与 DNS 服务器策略

01 介绍

将方便记忆的域名(如google.com)解析成实际的 ip 地址。

在Linux中,可以把整个域名解析过程想象成一个问路流程。

一般会经过:查询策略 → 查询hosts → 查询DNS的流程

01 问路策略

当你需要解析一个域名(比如 google.com)时,你首先会查阅这个“策略文件”,它告诉你应该按什么顺序、使用哪些方法来获取答案。

可以参考:[Linux] nsswitch.conf: Linux名称服务和切换配置

查询文件: /etc/nsswitch.conf,重点关注hosts这一行

image

  • files: 首先查看本地文件(hosts文件)
  • dns: hosts没有,就查询网络DNS服务器

系统会严格按照顺序执行,找到答案后就停止后续查询。

02 查询hosts

image

  • 127.0.0.1 localhost
    将localhost解析到本地回环地址

  • 127.0.1.1 MGter.localdomain MGter
    一个特殊的回环地址,常用于Debian/Ubuntu系发行版,让系统能够通过主机名解析到自己

  • ::1 ip6-localhost ip6-loopback
    IPv6 的本地回环地址,类似于IPv4的127.0.0.1

  • fe00::0 ip6-localnet ...
    这些是IPv6的特殊地址:

fe00::0:本地网络地址
ff00::0:组播前缀
ff02::1:链路本地所有节点地址
ff02::2:链路本地所有路由器地址

实际访问这些地址的时候:

ping localhost    # → 127.0.0.1
ping MGter        # → 127.0.1.1
ping ip6-localhost # → ::1

03 查询DNS服务

当hosts文件中没有对应策略时,系统会按照问路策略,查询NDS服务,打开 /etc/resolv.conf 文件,按照指示进行操作。

image

  • nameserver 127.0.0.53
    本地DNS代理服务地址,所有查询先发送到这里统一处理转发。可以提供缓存加速和安全验证功能。
    Ubuntu上一般是 systemd-resolved 服务。

  • nameserver 8.8.8.8
    Google公共DNS(主备用),当本地服务无法解析时使用

  • nameserver 114.114.115.115
    114 DNS备用服务器,主DNS失败时的备用选择。

  • options edns0 trust-ad
    edns0:启用DNS扩展协议,支持更大数据包和高级功能
    trust-ad:信任DNSSEC安全验证结果,防止DNS欺骗

  • serch .
    关闭域名自动补全,输入什么就查什么,不会自动添加公司域等后缀

posted on 2025-10-19 14:43  风惊庭前叶  阅读(26)  评论(0)    收藏  举报