resolv.conf 和hosts文件的区别

resolv.confhosts 文件的区别

resolv.confhosts 文件都是用于 域名解析(DNS) 的系统配置文件,但它们的 作用、使用场景和管理方式 不同。以下是两者的主要区别:

对比项/etc/hosts/etc/resolv.conf
主要功能静态域名到 IP 的映射(本地 DNS 记录)配置 DNS 服务器(指定查询 DNS 的方式)
解析顺序优先于 DNS 查询(先查 hosts,再查 DNS)定义如何查询外部 DNS 服务器
修改方式手动编辑可手动编辑,但可能被 DHCP 或网络管理工具覆盖
适用场景本地开发、测试、屏蔽网站、自定义域名解析配置系统默认的 DNS 服务器(如 8.8.8.8)
动态更新不会自动更新,需手动维护可能被 DHCP 或 systemd-resolved 自动更新
文件位置/etc/hosts(Linux/macOS/Windows)/etc/resolv.conf(Linux/macOS)
典型内容127.0.0.1 localhostnameserver 8.8.8.8

详细对比

1. 功能不同
  • hosts 文件

    • 存储 静态的域名-IP 映射,相当于一个本地的 DNS 数据库。
    • 适用于:
      • 开发测试(如 127.0.0.1 myapp.test
      • 屏蔽广告/恶意网站(如 0.0.0.0 ads.com
      • 强制域名指向特定 IP(如公司内网服务器)
  • resolv.conf 文件

    • 定义 如何查询 DNS,即系统应该向哪些 DNS 服务器发送查询请求。
    • 适用于:
      • 配置默认 DNS 服务器(如 Google DNS 8.8.8.8
      • 设置 DNS 搜索域(如 search example.com

2. 解析顺序

当计算机访问一个域名(如 example.com)时,解析顺序通常是:

  1. 先查 hosts 文件(如果有匹配,直接返回 IP,不再查询 DNS)
  2. 如果 hosts 没有记录,再查询 resolv.conf 指定的 DNS 服务器

3. 修改方式
  • hosts 文件

    • 完全手动管理,不会被系统自动修改。
    • 需要管理员权限才能编辑(如 sudo nano /etc/hosts)。
  • resolv.conf 文件

    • 可以手动编辑,但在现代 Linux 系统中:
      • 可能被 DHCP 自动覆盖(如连接新网络时)。
      • 可能由 systemd-resolvedNetworkManager 等工具管理。
    • 如果想永久修改 DNS,可能需要修改网络配置文件(如 /etc/network/interfacesnmcli)。

4. 典型示例
  • hosts 文件示例

    127.0.0.1   localhost
    192.168.1.100   myserver.local
    0.0.0.0     ads.example.com  # 屏蔽广告
    
  • resolv.conf 文件示例

    nameserver 8.8.8.8       # 使用 Google DNS
    nameserver 1.1.1.1       # 备用 Cloudflare DNS
    search example.com       # 自动补全域名
    options timeout:2        # 查询超时时间
    

总结

场景使用 hosts 文件使用 resolv.conf 文件
自定义域名解析✅(如 test.local → 127.0.0.1❌(不能直接定义域名映射)
配置 DNS 服务器✅(如 nameserver 8.8.8.8
屏蔽网站✅(如 0.0.0.0 badsite.com
动态 DNS 管理❌(完全手动)✅(可能被 DHCP 自动更新)

结论

  • hosts → 用于 静态、本地的域名解析(优先级高)。
  • resolv.conf → 用于 配置如何查询外部 DNS(动态性更强)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思静鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值