编辑 /etc/netplan/50cloudinit.yaml,添加dns46参数,如:[8.8.8.8, 8.8.4.4],保存后执行sudo net
Ubuntu 20 设置DNS地址的详细指南
在Ubuntu 20系统中,正确配置DNS地址对于网络访问的稳定性和速度至关重要,本文将详细介绍多种设置DNS的方法,并通过表格对比不同配置方式的特点,帮助您选择最适合的解决方案。
DNS配置的重要性
DNS(域名系统)负责将人类可读的域名转换为IP地址,合理配置DNS可以:
- 提升网络访问速度
- 增强隐私保护(如使用加密DNS)
- 绕过地域限制访问特定资源
- 解决某些网站无法访问的问题
设置DNS的三种主流方法
方法1:通过NetworkManager图形界面配置
步骤 | 操作说明 | 适用场景 |
---|---|---|
1 | 右键点击顶部栏网络图标,选择”编辑连接” | 所有桌面版用户 |
2 | 选择当前网络连接,点击”编辑”按钮 | 有线/无线网络 |
3 | 切换到”IPv4设置”选项卡 | IPv4网络环境 |
4 | 方法选择”自动(DHCP)地址”,下方填入DNS服务器 | 保留DHCP分配IP,自定义DNS |
5 | 在”DNS服务器”字段输入逗号分隔的地址(如8.8.8,8.8.4.4 ) |
需要长期有效配置 |
6 | 保存后重启网络连接 | 立即生效 |
优点:配置持久,支持多网卡分别设置
缺点:无线/有线连接需分别配置
方法2:通过命令行修改NetworkManager配置
命令 | 作用 | 示例 |
---|---|---|
nmcli connection edit "Wired connection 1" |
进入指定连接编辑模式 | 替换为实际连接名称 |
set ipv4.dns "8.8.8.8 8.8.4.4" |
设置DNS服务器 | 支持多个IP,空格分隔 |
set ipv4.ignoreautodns yes |
禁用自动获取的DNS | 防止被DHCP覆盖 |
save |
保存配置 | 必须执行 |
quit |
退出编辑模式 |
高级用法:
nmcli connection modify "Wired connection 1" ipv4.dns "9.9.9.9,149.112.112.112" ipv4.ignoreautodns yes
方法3:直接编辑/etc/resolv.conf(临时方案)
文件路径 | 配置格式 | 注意事项 |
---|---|---|
/etc/resolv.conf |
每行一个DNS地址,按优先级排序 | 重启后可能被覆盖 |
持久化技巧:
将自定义DNS写入/etc/network/interfaces
:
# 编辑文件 sudo nano /etc/network/interfaces # 添加以下内容(以ens33网卡为例) up echo "nameserver 1.1.1.1" >> /etc/resolv.conf
配置效果验证方法
验证方式 | 命令示例 | 预期结果 |
---|---|---|
查看当前DNS配置 | cat /etc/resolv.conf |
显示已配置的DNS地址 |
测试DNS解析 | nslookup www.baidu.com |
返回正确IP地址 |
测试连通性 | ping c 3 www.google.com |
获得响应数据包 |
查看网络详情 | nmcli device show | grep IP |
确认IPv4/IPv6状态正常 |
特殊场景解决方案
为特定程序设置DNS
某些程序可能需要独立DNS配置,可通过/etc/dnsmasq.conf
设置本地转发:
# 安装dnsmasq sudo apt install dnsmasq y # 配置本地转发规则 sudo echo "server=/google.com/1.1.1.1" >> /etc/dnsmasq.conf # 重启服务 sudo systemctl restart dnsmasq
搭建私有DNS缓存服务器
步骤 | 命令 | 作用 |
---|---|---|
1 | sudo apt install unbound |
安装轻量级DNS服务器 |
2 | sudo nano /etc/unbound/unbound.conf |
配置上游DNS服务器 |
3 | 添加server: 行指向公共DNS |
如8.8.8 |
4 | systemctl enable now unbound |
启动服务 |
常见问题与故障排除
症状 | 可能原因 | 解决方案 |
---|---|---|
DNS配置不生效 | NetworkManager未保存配置 防火墙拦截DNS请求 |
检查nmcli 保存状态检查ufw规则 |
部分网站无法访问 | DNS服务器故障或被墙 | 更换公共DNS(如Cloudflare的1.1.1.1) |
网络连接异常 | IP冲突或DNS配置错误 | 重置网络设置:sudo systemctl restart NetworkManager |
相关问题与解答
Q1:如何快速切换备用DNS服务器?
A:可以通过创建脚本实现快速切换,例如保存以下内容为switch_dns.sh
:
#!/bin/bash sudo nmcli connection modify "$1" ipv4.dns "$2" ipv4.ignoreautodns yes sudo nmcli connection up "$1"
使用方法:bash switch_dns.sh "Wired connection 1" "9.9.9.9"
Q2:Docker容器内如何继承主机DNS配置?
A:在/etc/docker/daemon.json
中添加:
{ "dns": ["8.8.8.8", "8.8.4.4"], "hosts": ["tcp://0.0.0.0:2375"] }
重启Docker服务后,容器将
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/199226.html