/etc/resolv.conf修改后启动自动恢复原样
时间: 2023-08-10 22:05:23 浏览: 51
这可能是由于您的系统正在使用 NetworkManager 来管理网络连接。 NetworkManager 可能会重写 /etc/resolv.conf 文件,以便使用 DHCP 或其他网络配置服务提供的 DNS 服务器。要更改此行为,您可以编辑 /etc/NetworkManager/NetworkManager.conf 文件,并将以下选项添加到 [main] 部分:
```
dns=none
```
然后重新启动 NetworkManager 服务即可。这将禁用 NetworkManager 对 /etc/resolv.conf 文件的自动修改。现在您应该能够更改 /etc/resolv.conf 文件并使更改保持不变。
相关问题
/etc/resolv.conf 修改后重启无效
如果你修改了 `/etc/resolv.conf` 文件但重启后仍然无效,可能是因为你的系统使用了 NetworkManager 服务来管理网络配置。NetworkManager 可能会覆盖 `/etc/resolv.conf` 文件中的设置。
要让修改生效,可以尝试以下方法:
1. 使用 NetworkManager 命令行工具 nmcli 修改 DNS 配置。例如,运行以下命令将 DNS 服务器设置为 8.8.8.8:
```
nmcli con mod <connection_name> ipv4.dns "8.8.8.8"
```
其中 `<connection_name>` 是你要修改的连接的名称。
2. 将 `/etc/resolv.conf` 文件设置为只读,以防止 NetworkManager 覆盖该文件。运行以下命令:
```
sudo chattr +i /etc/resolv.conf
```
这会将 `/etc/resolv.conf` 文件设置为只读,并且只有当你使用 `sudo chattr -i /etc/resolv.conf` 命令取消只读属性后才能修改该文件。
3. 禁用 NetworkManager 服务并使用传统的网络配置方法。这种方法可能需要更多的配置和管理工作,但可以确保你的 DNS 设置不会被覆盖。
你可以通过运行以下命令禁用 NetworkManager:
```
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
```
然后,你可以使用 `/etc/network/interfaces` 文件来配置网络接口和 DNS 设置。例如,你可以添加以下行以设置 DNS 服务器:
```
dns-nameservers 8.8.8.8
```
然后,重启网络服务以使更改生效:
```
sudo systemctl restart networking
```
修改/etc/resolv.conf后无法生效
如果修改了`/etc/resolv.conf`文件后没有生效,可能有以下几种原因:
1. 网络管理器影响了配置文件:如果你的系统使用了网络管理器(例如NetworkManager),则该服务可能会自动更改`/etc/resolv.conf`文件。你可以在`/etc/NetworkManager/NetworkManager.conf`文件中的`[main]`部分添加`dns=none`来禁用此功能。
2. 系统更新DNS配置:某些Linux发行版(例如Ubuntu)在每次启动时都会更新`/etc/resolv.conf`文件。这通常是通过`resolvconf`服务完成的。你可以使用以下命令来停止此服务:`sudo service resolvconf stop`。
3. 使用了静态IP地址:如果你使用静态IP地址,则必须手动编辑`/etc/resolv.conf`文件并添加正确的DNS服务器IP地址。
4. 文件权限问题:请确保你有足够的权限编辑`/etc/resolv.conf`文件。你可以使用以下命令来检查和更改文件权限:`ls -l /etc/resolv.conf`和`sudo chmod 644 /etc/resolv.conf`。
5. 其他问题:如果以上方法都无法解决问题,则可能存在其他问题,例如网络配置问题或DNS服务器配置问题。你可以尝试重新启动网络服务或联系你的网络管理员寻求帮助。