linux /etc/resolv.conf 改完dns 怎么保证重启仍然生效
时间: 2023-02-08 10:43:27 浏览: 558
在 Linux 系统中,可以使用 `resolvconf` 工具来管理 `/etc/resolv.conf` 文件。这个工具会在系统重启后自动重新配置 DNS。
另外一种方法是直接修改`/etc/network/interfaces` 文件,在里面加上 dns-nameservers x.x.x.x 便可
你可以通过运行 `sudo resolvconf -u` 来更新 DNS 配置,使之生效。
此外,也可以在`/etc/network/interfaces` 中配置,如下
```
# The primary network interface
auto enp0s3
iface enp0s3 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
```
如果你是通过修改 /etc/resolv.conf 文件来修改 DNS 配置的,请确保这个文件的权限设置正确。
相关问题
/etc/resolv.conf中的dns生效几个
在Linux系统中,/etc/resolv.conf文件用于配置DNS解析器的设置。该文件中可以指定多个DNS服务器地址,但是只有第一个指定的DNS服务器会被优先使用。如果第一个DNS服务器无法响应,则解析器将尝试使用第二个DNS服务器,以此类推,直到找到可用的DNS服务器或者所有DNS服务器都已经尝试过。因此,实际上只有第一个指定的DNS服务器地址是最有效的。
/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
```
阅读全文