编辑
/etc/resolv.conf
,添加 nameserver
行(如 nameserver 8.8.8.8
),若用 NetworkManager,需在 /etc/%ignore_a_3%/NetworkManager.conf
中设 [main] dns=none
Ubuntu 16.04 配置DNS的详细指南
DNS基础知识
1 什么是DNS?
DNS(Domain Name System)是互联网的核心协议之一,负责将人类可读的域名(如www.example.com)转换为计算机可识别的IP地址(如192.168.1.1),在Linux系统中,DNS配置直接影响网络访问速度和稳定性。
2 DNS工作流程
步骤 | 描述 |
---|---|
1 | 客户端发起DNS查询请求 |
2 | 查询本地缓存 |
3 | 向配置的DNS服务器发送请求 |
4 | 递归查询直到获得结果 |
5 | 返回解析结果并缓存 |
Ubuntu 16.04配置DNS的三种方法
直接修改/etc/resolv.conf
1 临时配置
sudo nano /etc/resolv.conf
nameserver 8.8.8.8 # Google公共DNS
nameserver 8.8.4.4
注意:此方法在系统重启后可能失效,需配合永久配置使用。
2 永久配置(防止被覆盖)
编辑NetworkManager配置文件:
sudo nano /etc/NetworkManager/NetworkManager.conf
[main]
dns=none
保存后重启NetworkManager:
sudo service networkmanager restart
通过NetworkManager图形界面配置
- 打开”网络连接”应用
- 选择当前网络连接 → 编辑
- 切换到IPv4设置 → 选择”自动(DHCP)地址”
- 在”DNS服务器”字段添加:
8.8.8, 8.8.4.4
- 保存并重启网络
修改/etc/network/interfaces(静态IP配置)
sudo nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dnsnameservers 1.1.1.1 8.8.8.8
适用场景:需要固定IP地址的服务器环境。
公共DNS服务推荐
服务商 | IP地址 | 特点 |
---|---|---|
8.8.8 8.4.4 |
速度快、稳定性高 | |
Cloudflare | 1.1.1 0.0.1 |
隐私保护、恶意软件拦截 |
OpenDNS | 67.222.222 67.220.220 |
安全过滤、自定义设置 |
AliDNS | 5.5.5 6.6.6 |
国内访问速度快 |
DNS配置验证
1 使用dig命令测试
dig www.baidu.com +short
正常输出示例:
101.49.11
180.101.49.12
2 使用nslookup测试
nslookup www.google.com 8.8.8.8
预期结果:显示Google的IP地址和查询详情。
3 查看DNS缓存
sudo dumpcache Dns
作用:查看系统当前缓存的DNS记录。
高级配置技巧
1 设置DNS搜索域
在/etc/resolv.conf添加:
search example.com
效果:访问主机名时自动添加域名后缀。
2 配置DNS超时和重试次数
编辑/etc/resolv.conf:
options ndots:1 timeout:2 attempts:3
参数说明:
ndots:1
:少于1个点的域名使用搜索域timeout:2
:超时时间2秒attempts:3
:重试3次
3 搭建本地DNS缓存服务器
安装dnsmasq:
sudo aptget install dnsmasq
配置/etc/dnsmasq.conf:
cachesize=1000
noresolv
server=8.8.8.8
启动服务:
sudo service dnsmasq restart
常见问题与故障排除
症状 | 可能原因 | 解决方案 |
---|---|---|
无法解析域名 | DNS服务器未配置或网络中断 | 检查/etc/resolv.conf配置,测试网络连接 |
配置不生效 | 权限不足或被NetworkManager覆盖 | 使用sudo编辑,设置NetworkManager为”dns=none” |
解析速度慢 | 使用了不恰当的DNS服务器 | 更换为地理位置更近的公共DNS |
间歇性解析失败 | DNS缓存问题 | 重启dnsmasq服务或清理缓存 |
相关问题与解答
Q1:如何测试当前系统使用的DNS服务器?
A:使用systemdresolve
命令(需安装systemdresolved):
systemdresolve status | grep '^DNS'
或查看网络连接详情:
nmcli connection show active | grep 'IP4.DNS'
Q2:配置多个DNS服务器有什么作用?
A:主要有两个作用:
- 冗余备份:当主DNS服务器故障时自动切换到备用服务器
- 负载均衡:多个DNS服务器可以分担解析请求压力
建议按优先级顺序排列,将响应速度最快的
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/201316.html