改dns /etc/resolv.conf
时间: 2025-06-20 19:56:44 浏览: 14
### 修改 DNS 配置文件的方法
`/etc/resolv.conf` 文件本身是一个连接文件,并且明确警告用户不要直接修改它[^1]。实际上,该文件的内容是由系统自动生成的,用于显示当前生效的 DNS 配置。如果需要修改 DNS 配置,应该通过其他方式配置,而不是直接编辑 `/etc/resolv.conf`。
以下是几种常见的配置方法:
#### 1. 使用网络接口配置文件
在基于 Debian 的系统(如 Ubuntu)中,可以通过编辑 `/etc/network/interfaces` 文件来设置 DNS。例如:
```bash
auto eth0
iface eth0 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
```
在此示例中,`dns-nameservers` 行指定了 Google 的公共 DNS 服务器地址。保存文件后,重启网络服务以使更改生效:
```bash
sudo systemctl restart networking
```
#### 2. 使用 Netplan 配置(适用于现代 Ubuntu 系统)
现代 Ubuntu 系统使用 Netplan 来管理网络配置。可以编辑 Netplan 配置文件(通常位于 `/etc/netplan/` 目录下),例如 `01-netcfg.yaml`:
```yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
```
保存文件后,应用配置:
```bash
sudo netplan apply
```
#### 3. 使用 systemd-resolved
如果系统启用了 `systemd-resolved`,DNS 配置可以通过该服务管理。编辑 `/etc/systemd/resolved.conf` 文件,找到 `[Resolve]` 部分并添加或修改以下内容:
```ini
[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=
Domains=
LLMNR=no
MulticastDNS=no
DNSSEC=no
```
保存文件后,重启 `systemd-resolved` 服务:
```bash
sudo systemctl restart systemd-resolved
```
然后更新 `/etc/resolv.conf` 的链接目标为 `systemd-resolved` 的解析文件:
```bash
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
```
#### 4. 使用 DHCP 分配 DNS
如果网络是通过 DHCP 自动获取 IP 地址,则 DNS 服务器通常由 DHCP 服务器分配。可以通过修改 DHCP 客户端配置文件(如 `/etc/dhcp/dhclient.conf`)来指定 DNS 服务器:
```bash
supersede domain-name-servers 8.8.8.8, 8.8.4.4;
```
保存文件后,重启网络服务以应用更改。
---
### 注意事项
- 如果直接修改 `/etc/resolv.conf` 文件,可能会被系统覆盖或忽略[^1]。
- 不同 Linux 发行版可能有不同的网络管理工具和配置方法,请根据具体环境选择合适的方式。
---
阅读全文
相关推荐


















