1.DNS是什么?
DNS(Domain Name System,域名系统)是互联网的电话簿和导航系统。想象一下,如果你想访问一个网站,你需要记住像“192.0.2.1”这样的IP地址数字串,这几乎是不可能的任务。DNS的作用就是将人类友好的域名(如www.example.com)转换为计算机能够理解的IP地址(如192.0.2.1),让我们能够轻松地访问互联网资源。
1.1 DNS的重要性
-
易用性:让人们无需记忆复杂的数字IP地址
-
灵活性:允许网站更换服务器而不影响用户访问
-
负载均衡:可以将流量分散到多个服务器
-
冗余备份:提供故障转移机制,提高服务可用性
2.DNS的作用与功能
2.1 核心功能
域名到IP地址的解析:这是DNS最基本也是最重要的功能。当你输入一个网址时,DNS负责查找对应的IP地址。
邮件服务器定位:DNS中的MX记录指定了接收域邮件的服务器。
服务发现:通过SRV记录,DNS可以指示特定服务(如VoIP、即时通讯)的位置。
反向解析:将IP地址转换回域名,常用于安全验证和日志分析。
2.2 实际应用场景
-
网站访问:浏览器地址栏输入域名
-
电子邮件发送:邮件客户端使用DNS查找收件人邮件服务器
-
云服务访问:连接云存储、API等服务
-
内容分发网络(CDN):将用户引导到最近的服务器节点
3.DNS工作原理详解
3.1 域名结构解析
域名采用分层树状结构,从右向左阅读:
-
根域:最高层级,用点(.)表示
-
顶级域:如.com、.org、.cn等
-
二级域:如example.com中的"example"
-
子域:如www.example.com中的"www"
3.2 DNS解析全过程
当你在浏览器中输入"www.baidu.com"并按下回车时,会发生以下过程:
3.2.1 本地查询阶段
1. 浏览器检查本地缓存 → 2. 操作系统检查本地缓存 → 3. 检查hosts文件
3.2.2 递归查询阶段
如果本地没有记录,系统会向配置的DNS递归解析器(通常是ISP或公共DNS)发起查询:
客户端 → 递归解析器 → 根DNS服务器 → 顶级域服务器 → 权威DNS服务器
3.2.3 详细步骤分解
步骤1:查询根DNS服务器
递归解析器首先查询13个根DNS服务器之一,获取.com顶级域服务器的地址。
步骤2:查询顶级域服务器
接着向.com服务器查询,获取baidu.com的权威DNS服务器地址。
步骤3:查询权威DNS服务器
最后向baidu.com的权威服务器查询www.baidu.com的IP地址。
步骤4:返回结果并缓存
递归解析器获得IP地址后,返回给客户端,并在各级缓存中保存该记录。
3.3 DNS记录类型
-
A记录:将域名指向IPv4地址
-
AAAA记录:将域名指向IPv6地址
-
CNAME记录:域名别名,将一个域名指向另一个域名
-
MX记录:邮件交换记录,指定邮件服务器
-
TXT记录:文本记录,常用于验证和SPF设置
-
NS记录:指定该域名的权威DNS服务器
4.主流操作系统DNS配置方法
4.1 Windows系统配置
4.1.1 图形化界面配置(Windows 10/11)
-
右键点击网络图标 → 选择"网络和Internet设置"
-
点击"更改适配器选项"
-
右键点击当前网络连接 → 选择"属性"
-
双击"Internet协议版本4 (TCP/IPv4)"
-
选择"使用下面的DNS服务器地址"
-
输入首选和备用DNS服务器地址,如:
-
首选:8.8.8.8 (Google DNS)
-
备用:114.114.114.114 (国内公共DNS)
-
-
点击"确定"保存设置
4.1.2 命令提示符配置
# 查看当前DNS配置
ipconfig /all
# 设置静态DNS(管理员权限运行)
netsh interface ip set dns "以太网" static 8.8.8.8
netsh interface ip add dns "以太网" 114.114.114.114 index=2
# 设置为自动获取DNS
netsh interface ip set dns "以太网" dhcp
4.1.3 PowerShell配置
# 查看网络接口
Get-NetAdapter
# 设置DNS服务器
Set-DnsClientServerAddress -InterfaceAlias "以太网" -ServerAddresses ("8.8.8.8","114.114.114.114")
# 恢复自动获取
Set-DnsClientServerAddress -InterfaceAlias "以太网" -ResetServerAddresses
4.2 macOS系统配置
4.2.1 图形化界面配置
-
打开"系统偏好设置" → 点击"网络"
-
选择当前网络连接(Wi-Fi或以太网)
-
点击"高级"按钮
-
选择"DNS"标签页
-
点击"+"添加DNS服务器
-
输入DNS地址,如:8.8.8.8, 114.114.114.114
-
使用拖拽调整优先级顺序
-
点击"好" → "应用"保存设置
4.2.2 终端配置
# 查看当前网络服务列表
networksetup -listallnetworkservices
# 设置Wi-Fi的DNS(以Wi-Fi为例)
networksetup -setdnsservers Wi-Fi 8.8.8.8 114.114.114.114
# 清空DNS设置
networksetup -setdnsservers Wi-Fi "Empty"
# 刷新DNS缓存(不同版本命令不同)
# macOS 12及以上
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
4.3 Linux系统配置
4.3.1 Ubuntu/Debian(使用Netplan)
Ubuntu 18.04及以上版本:
# 编辑网络配置文件
sudo nano /etc/netplan/01-netcfg.yaml
# 添加DNS配置示例
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
# 应用配置
sudo netplan apply
4.3.2 CentOS/RHEL/Fedora
使用nmcli(NetworkManager命令行工具):
# 查看当前连接
nmcli connection show
# 设置静态DNS
nmcli connection modify "有线连接 1" ipv4.dns "8.8.8.8 114.114.114.114"
nmcli connection up "有线连接 1"
# 或者直接编辑配置文件
sudo nano /etc/resolv.conf
# 添加:nameserver 8.8.8.8
# 添加:nameserver 114.114.114.114
4.3.3 通用方法:修改resolv.conf
# 临时修改(重启后失效)
sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf
sudo echo "nameserver 114.114.114.114" >> /etc/resolv.conf
# 永久修改(系统可能覆盖,最好使用上述发行版特定方法)
4.4 路由器DNS配置
配置路由器DNS会影响所有连接该路由器的设备:
-
浏览器输入路由器管理IP(通常是192.168.1.1或192.168.0.1)
-
输入管理员账号密码登录
-
找到"网络设置"或"WAN设置"
-
在DNS服务器字段输入自定义DNS地址
-
保存设置并重启路由器
5.常用公共DNS推荐
5.1 国内公共DNS
-
114 DNS:114.114.114.114(纯净无劫持)
-
阿里DNS:223.5.5.5 和 223.6.6.6
-
百度DNS:180.76.76.76
-
腾讯DNS:119.29.29.29
5.2 国际公共DNS
-
Google DNS:8.8.8.8 和 8.8.4.4
-
Cloudflare DNS:1.1.1.1 和 1.0.0.1(注重隐私)
-
OpenDNS:208.67.222.222 和 208.67.220.220
5.3 如何选择合适的DNS
-
速度优先:使用本地ISP的DNS通常最快
-
安全优先:选择支持DNSSEC的DNS如Cloudflare
-
纯净优先:选择无广告劫持的DNS如114 DNS
-
功能丰富:OpenDNS提供家长控制等额外功能
6.DNS故障排查与工具
6.1 常用诊断命令
Windows:
# 清除DNS缓存
ipconfig /flushdns
# 显示DNS缓存
ipconfig /displaydns
# 测试DNS解析
nslookup www.baidu.com
Linux/macOS:
# 测试DNS解析
dig www.baidu.com
nslookup www.baidu.com
# 跟踪DNS解析过程
dig +trace www.baidu.com
# 清除DNS缓存(Linux systemd-resolved)
sudo systemd-resolve --flush-caches
6.2 常见问题与解决方案
问题1:DNS服务器无响应
-
检查网络连接是否正常
-
尝试更换其他公共DNS服务器
-
检查防火墙是否阻止了DNS查询(端口53)
问题2:某些网站无法访问
-
使用
nslookup检查域名解析是否正确 -
检查hosts文件是否被修改
-
尝试清除DNS缓存
问题3:DNS污染或劫持
-
使用DoH(DNS over HTTPS)或DoT(DNS over TLS)
-
配置支持加密DNS的解析器
-
使用VPN连接
7.进阶:DNS安全与优化
7.1 DNS安全扩展(DNSSEC)
DNSSEC通过数字签名验证DNS响应的真实性,防止DNS缓存投毒攻击。
7.2 加密DNS协议
-
DNS over HTTPS (DoH):通过HTTPS加密DNS查询
-
DNS over TLS (DoT):通过TLS加密DNS查询
7.3 DNS性能优化
-
合理设置TTL值:平衡缓存效率与更新及时性
-
使用DNS预取:浏览器提前解析页面中的链接
-
部署本地DNS缓存:减少外部查询次数
11万+

被折叠的 条评论
为什么被折叠?



