ubuntu NetworkManager修改dns服务器
时间: 2025-06-10 11:33:51 浏览: 27
### Ubuntu 中通过 NetworkManager 修改 DNS 服务器
在基于 Ubuntu 的操作系统中,NetworkManager 是管理网络配置的主要工具之一。以下是关于如何通过 NetworkManager 来修改 DNS 设置的具体说明。
#### 使用图形界面修改 DNS 配置
对于桌面版本的 Ubuntu 用户来说,可以通过图形化界面轻松完成 DNS 的修改:
1. 打开 **设置** 应用程序。
2. 转到 **网络** 或者 **Wi-Fi** 页面(视当前连接方式而定)。
3. 点击右侧的齿轮图标进入所选网络的详细设置页面。
4. 切换至 **IPv4** 或 **IPv6** 设置选项卡。
5. 将 “DNS” 字段更改为所需的 DNS 地址[^2]。
6. 完成后点击保存按钮退出设置窗口。
#### 命令行下修改 DNS 配置
如果偏好命令行或者是在无图形界面环境下工作,则可以采用如下方式进行调整:
1. 编辑对应网络接口的配置文件。一般位于 `/etc/NetworkManager/system-connections/` 下面找到对应的 .nmconnection 文件并编辑它:
```bash
sudo nano /etc/NetworkManager/system-connections/[Your-Network].nmconnection
```
2. 查找 `[ipv4]` 或 `[ipv6]` 部分下的 `dns=` 参数,并将其设为你想要使用的 DNS 服务器地址。例如:
```
[ipv4]
method=auto
dns=8.8.8.8;8.8.4.4;
```
3. 如果之前存在其他自定义的 DNS 记录,请确保它们被替换或更新为新的值。
4. 当所有更改完成后,重启 NetworkManager 服务使改动生效:
```bash
sudo systemctl restart NetworkManager
```
另外需要注意的一点是,在某些情况下可能还需要清理缓存来让新设定立即起作用。这可通过运行以下命令实现:
```bash
sudo systemd-resolve --flush-caches
```
尽管如此,有时即使完成了上述步骤仍可能出现无法解析域名的现象。此时可参照特定情况下的解决办法,比如确认 `/etc/resolv.conf` 是否由 `systemd-resolved` 动态生成以及其内容是否正确反映最新配置等措施[^3]。
```python
import subprocess
def flush_dns_cache():
try:
result = subprocess.run(['sudo', 'systemd-resolve', '--flush-caches'], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
return result.stdout.decode('utf-8')
except Exception as e:
return str(e)
print(flush_dns_cache())
```
以上就是利用 NetworkManager 在不同场景下来改变 DNS 服务器的相关指导信息。
阅读全文
相关推荐


















