当前位置: 首页 > 新闻动态 > 技术教程

Linux如何修改resolv.conf文件配置DNS

作者:P粉602998670 浏览: 发布日期:2025-09-04
[导读]:应通过系统网络管理工具配置DNS以确保持久生效。首先确认网络管理服务(如NetworkManager或systemd-resolved),然后使用对应方法设置:1.临时修改可直接编辑/etc/resolv.conf,添加nameserver8.8.8.8等,但重启后可能被覆盖;2.推荐通过NetworkManager配置,使用nmcli命令修改连接的DNS并重新激活;3.若使用systemd-resolved,应编辑/etc/systemd/resolved.conf,设置DNS并重启服务,同时
应通过系统网络管理工具配置DNS以确保持久生效。首先确认网络管理服务(如NetworkManager或systemd-resolved),然后使用对应方法设置:1. 临时修改可直接编辑/etc/resolv.conf,添加nameserver 8.8.8.8等,但重启后可能被覆盖;2. 推荐通过NetworkManager配置,使用nmcli命令修改连接的DNS并重新激活;3. 若使用systemd-resolved,应编辑/etc/systemd/resolved.conf,设置DNS并重启服务,同时将/etc/resolv.conf软链接至/run/systemd/resolve/resolv.conf;4. 可通过sudo chattr +i /etc/resolv.conf防止文件被覆盖,但需谨慎避免网络异常。关键在于匹配系统实际使用的网络管理工具进行配置。

在Linux系统中,/etc/resolv.conf 文件用于配置DNS解析器,定义系统使用的DNS服务器地址。虽然可以直接编辑该文件,但现代Linux发行版通常由网络管理工具(如NetworkManager、systemd-resolved、dhclient等)自动生成和覆盖,因此直接修改可能在重启或网络重连后失效。以下是几种安全有效的修改方式。

1. 临时修改 resolv.conf(适用于测试)

注意:此方法修改后可能被覆盖,仅用于临时测试。

可以直接编辑文件,添加所需的DNS服务器:

命令:
sudo nano /etc/resolv.conf
添加如下内容:

  • nameserver 8.8.8.8
  • nameserver 8.8.4.4
  • nameserver 1.1.1.1

保存退出即可生效。但若系统使用DHCP或NetworkManager,下次网络重启时可能被重写。

2. 通过NetworkManager配置DNS(推荐)

大多数桌面和服务器系统使用NetworkManager管理网络,应通过它来设置DNS,避免被覆盖。

步骤:

  • 编辑对应连接配置:
    nmcli con show # 查看连接名称
    nmcli con mod "连接名" ipv4.dns "8.8.8.8 1.1.1.1"
    nmcli con up "连接名" # 重新激活连接
  • 或将DNS设置为自动(DHCP)或手动:
    nmcli con mod "连接名" ipv4.ignore-auto-dns yes # 忽略DHCP提供的DNS

这样配置后,NetworkManager会自动更新 /etc/resolv.conf

3. 使用 systemd-resolved 统一管理DNS

若系统使用 systemd-resolved,应通过 resolvectl 或配置 /etc/systemd/resolved.conf 来设置。

编辑配置文件:
sudo nano /etc/systemd/resolved.conf

修改或添加:

  • [Resolve]
  • DNS=8.8.8.8 1.1.1.1
  • # Domains=example.com
  • LLMNR=no
  • MulticastDNS=no

启用并重启服务:

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

同时建议将 /etc/resolv.conf 指向 systemd-resolved:

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

4. 防止 resolv.conf 被覆盖

若想手动控制文件内容,可将其设为不可变:

sudo chattr +i /etc/resolv.conf

这将阻止任何程序修改该文件。需要修改时再取消:

sudo chattr -i /etc/resolv.conf

注意:此操作可能导致网络服务异常,需谨慎使用。

基本上就这些。关键是搞清楚系统由谁管理网络(NetworkManager、systemd、dhclient等),然后通过对应方式配置DNS,才能持久生效。直接改文件治标不治本。

免责声明:转载请注明出处:http://sczxchw.cn/news/442083.html

扫一扫高效沟通

多一份参考总有益处

免费领取网站策划SEO优化策划方案

请填写下方表单,我们会尽快与您联系
感谢您的咨询,我们会尽快给您回复!