如何在 Linux 中无法写入 /etc/resolv.conf

如何在 Linux 中无法写入 /etc/resolv.conf

每当我暂停系统时,我的更改/etc/resolv.conf都会默认设置。

每次系统加载时更改文件都很累。

有各种方法可以保存我的更改/etc/resolv.conf??

答案1

正如 Artur Meinild 指出的那样。resolve.config 文件将被安装的网络管理器自动更改。(“NetworkManager” 是其中之一)

您可以通过查看 resolve.conf 文件来检查

$ cat /etc/resolv.conf
Generated by NetworkManager

您的系统上可能存在各种网络管理器:以下是 2 个主要嫌疑人的示例:

如果是 systemd,您可以在 systemd 文件中手动更改 DNS 地址 /etc/systemd/resolved.conf。在那里你应该注释掉 DNS 或并填写你想要的服务。

sudo nano /etc/systemd/resolved.conf

如果它是 NetworkManager(我的主要网络管理器),您可以通过在终端中执行“$ sudo NetworkManager --print-config”来显示设置,可以在显示的文件位置添加任何 DNS 设置:

sudo nano /etc/NetworkManager/NetworkManager.conf

并填写

[main]
dns=8.8.8.8;

或者如果你想让它保留 /etc/resolv.conf 文件

dns=none

在所有情况下,您都应该重新启动服务,或者简单地按照 Windows 方式执行:重新启动

sudo systemctl restart NetworkManager

额外更新:您的标题表明您只想在文件上设置写入块。这不是常见的做法,因为此类操作会绕过 Linux 流程。

sudo chmod u-w /etc/resolv.conf

.. 删除文件的写入选项

答案2

sudo chattr +i etc/resolv.conf

最好在建立网络连接之前完成,而且我不会太相信它。

相关内容