信息发布→ 登录 注册 退出

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

发布时间:2025-09-04

点击量:
应通过系统网络管理工具配置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,才能持久生效。直接改文件治标不治本。

标签:# linux  # dns  # 工具  # ai  # linux系统  # auto  # 重启  # 可以直接  # 该文件  # 需谨慎  # 治标不治本  # 设为  # 适用于  # 将其  # 所需  # 能在  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!