linux解决resolv.conf重启之后会自动还原的问题的几种方法 ...

打印 上一主题 下一主题

主题 1786|帖子 1786|积分 5358

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在 Ubuntu 体系中,/etc/resolv.conf 文件的内容在重启后会被自动还原,通常是由于该文件由体系的网络管理服务(如 NetworkManager 或 systemd-resolved)动态天生和管理。要防止其重启后被自动还原,你可以尝试以下几种解决方法:
问题分析


  • /etc/resolv.conf 文件用于存储DNS服务器和搜索域信息。在传统体系中,手动编辑这个文件可以设置DNS。
  • systemd-resolved 是一个用于管理DNS解析的服务。它动态地更新 /etc/resolv.conf,并将DNS请求转发给上游DNS服务器。
  • 符号链接:如果你直接修改 /etc/resolv.conf,更改会丢失,由于它指向 /run/systemd/resolve/stub-resolv.conf(一个动态文件,每次重启会更新)。

让 /etc/resolv.conf 永世生效的方法

方法1:禁用 systemd-resolved

如果你不希望 systemd-resolved 管理DNS,并希望利用本身设置的 DNS 信息:

  • 停止并禁用 systemd-resolved:
    1. sudo systemctl stop systemd-resolved
    2. sudo systemctl disable systemd-resolved
    复制代码
  • 删除符号链接:
    1. sudo rm /etc/resolv.conf
    复制代码
  • 创建新的静态 /etc/resolv.conf 文件:
    1. sudo nano /etc/resolv.conf
    复制代码
    在文件中添加你必要的DNS服务器,例如:
    1. nameserver 8.8.8.8
    2. nameserver 8.8.4.4
    复制代码
  • 锁定 /etc/resolv.conf 防止意外修改: 如果其他服务可能覆盖它,可以设置文件锁:
    1. sudo chattr +i /etc/resolv.conf
    复制代码
    这会让文件变成不可变,制止被其他程序或服务修改。
  • 保存并退出。

方法2:保持 systemd-resolved 但指定自定义 DNS

如果你希望继续利用 systemd-resolved,但必要自定义 DNS 设置:

  • 创建 /etc/systemd/resolved.conf.d/dns.conf 设置文件:
    1. sudo mkdir -p /etc/systemd/resolved.conf.d
    2. sudo nano /etc/systemd/resolved.conf.d/dns.conf
    复制代码
  • 添加 DNS 服务器设置:
    1. [Resolve]
    2. DNS=8.8.8.8 8.8.4.4
    3. FallbackDNS=1.1.1.1 1.0.0.1
    复制代码
  • 重启 systemd-resolved 服务:
    1. sudo systemctl restart systemd-resolved
    复制代码
  • 检查是否生效:
    1. resolvectl status
    复制代码

方法3:将 /etc/resolv.conf 指向自定义文件

如果你希望利用本身的 DNS 设置,但又不想完全禁用 systemd-resolved:

  • 创建一个静态 /etc/resolv.conf 文件:
    1. sudo nano /etc/resolv-custom.conf
    复制代码
    内容如下:
    1. nameserver 8.8.8.8
    2. nameserver 8.8.4.4
    复制代码
  • 用符号链接更换默认 /etc/resolv.conf:
    1. sudo ln -sf /etc/resolv-custom.conf /etc/resolv.conf
    复制代码

总结



  • 如果你希望完全本身管理DNS,发起禁用 systemd-resolved 并创建静态 /etc/resolv.conf。
  • 如果你希望保持 systemd-resolved 运行,但利用自定义DNS,则可以通过设置文件更改它的行为。
  • 检查生效环境时,可以利用:
    1. resolvectl status
    复制代码
根据你的需求选择合适的方案即可让 DNS 设置永世生效。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曹旭辉

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表