如何在Linux中配置DNS解析 Linux resolv.conf文件修改

答案:Linux中DNS通过/etc/resolv.conf配置,可手动修改nameserver等参数,但需注意NetworkManager或systemd-resolved可能覆盖更改,推荐通过nmcli或systemd-resolved管理以确保持久生效。

如何在Linux中配置DNS解析 Linux resolv.conf文件修改

在Linux系统中,DNS解析主要通过 /etc/resolv.conf 文件进行配置。这个文件定义了系统用于解析域名的DNS服务器地址和搜索域等信息。虽然现代Linux发行版常使用NetworkManager或systemd-resolved动态管理该文件,但了解如何手动修改和配置它仍然非常实用。

resolv.conf 文件的基本结构

该文件通常包含以下类型的配置行:

  • nameserver:指定DNS服务器IP地址,最多可配置3个
  • search:定义域名搜索列表,用于补全短域名
  • domain:设置本地域名(通常由search替代)
  • options:配置解析器行为,如超时、重试次数等

示例:

nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com internal.example.com
options timeout:2 attempts:3

直接修改 resolv.conf(适用于临时配置)

你可以使用文本编辑器直接编辑该文件:

sudo nano /etc/resolv.conf

添加或修改 nameserver 行,保存退出即可生效。但注意:如果系统使用NetworkManager或systemd-resolved,你的修改可能会被覆盖。

防止配置被覆盖的方法

若发现修改后配置自动恢复,说明有服务在管理该文件。常见解决方式:

  • 使用 chattr 命令锁定文件(谨慎使用):
  • sudo chattr +i /etc/resolv.conf

    这将防止任何程序修改该文件。需要解除时使用:sudo chattr -i /etc/resolv.conf

    如何在Linux中配置DNS解析 Linux resolv.conf文件修改

    Detect GPT

    一个Chrome插件,检测您浏览的页面是否包含人工智能生成的内容

    如何在Linux中配置DNS解析 Linux resolv.conf文件修改38

    查看详情 如何在Linux中配置DNS解析 Linux resolv.conf文件修改

  • 通过NetworkManager配置DNS(推荐):
  • nmcli con show
    nmcli con mod “连接名” ipv4.dns “8.8.8.8 1.1.1.1”
    nmcli con up “连接名”

    这样NetworkManager会自动更新resolv.conf且不会被覆盖。

  • 使用systemd-resolved统一管理:
  • 编辑 /etc/systemd/resolved.conf

    [Resolve]
    DNS=8.8.8.8 1.1.1.1
    Domains=example.com

    然后启用服务:

    sudo systemctl enable systemd-resolved
    sudo systemctl restart systemd-resolved

    并确保 /etc/resolv.conf 指向它:sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

验证DNS配置是否生效

使用以下命令测试解析是否正常:

ping google.com
nslookup example.com
dig example.com

查看当前生效的DNS:

cat /etc/resolv.conf 基本上就这些。修改resolv.conf看似简单,但需注意系统是否由其他服务动态管理。选择合适的方法才能确保配置持久有效。

相关标签:

linux go ai dns linux系统 internal linux

上一篇
下一篇