DNS 服务器配置实战:3分钟完成 Windows 11/Ubuntu 22.04 双系统切换

📅 2026/7/11 21:16:03 👁️ 阅读次数 📝 编程学习
DNS 服务器配置实战:3分钟完成 Windows 11/Ubuntu 22.04 双系统切换

DNS 服务器配置实战:3分钟完成 Windows 11/Ubuntu 22.04 双系统切换

当你在 Windows 11 和 Ubuntu 22.04 双系统之间频繁切换时,是否遇到过网页加载缓慢、视频缓冲卡顿的情况?这很可能与 DNS 服务器设置有关。本文将带你深入了解 DNS 的工作原理,并提供一套快速切换 DNS 的完整方案,让你在不同操作系统中都能获得最佳的网络体验。

1. 为什么需要自定义 DNS 服务器

DNS(Domain Name System)就像互联网的电话簿,负责将我们熟悉的域名(如 google.com)转换为计算机能够理解的 IP 地址。默认情况下,你的设备会使用网络服务提供商(ISP)分配的 DNS 服务器,但这些服务器可能存在以下问题:

  • 响应速度慢:ISP 的 DNS 服务器可能负载过高,导致查询延迟
  • 隐私风险:部分 ISP 会记录用户的 DNS 查询历史
  • 内容过滤:某些地区可能会对特定网站进行 DNS 级别的屏蔽
  • 稳定性差:ISP DNS 服务器宕机可能导致无法上网

主流公共 DNS 服务对比

服务提供商首选 DNS备用 DNS特点
114DNS114.114.114.114114.114.115.115国内响应快,稳定性高
阿里DNS223.5.5.5223.6.6.6阿里云基础设施支持,抗攻击能力强
Google DNS8.8.8.88.8.4.4全球覆盖,支持DoH/DoT加密
Cloudflare1.1.1.11.0.0.1隐私保护最佳,全球节点多
OpenDNS208.67.222.222208.67.220.220家庭防护功能强大

提示:选择 DNS 服务器时,建议先进行 ping 测试,选择延迟最低的服务器。不同地区、不同网络环境下,最优 DNS 可能有所不同。

2. Windows 11 DNS 配置指南

Windows 11 提供了图形界面和命令行两种方式来修改 DNS 设置,下面分别介绍这两种方法。

2.1 图形界面配置方法

  1. 右键点击任务栏的网络图标,选择"网络和 Internet 设置"
  2. 在打开的设置窗口中,点击"高级网络设置" → "更多网络适配器选项"
  3. 右键点击当前使用的网络连接(有线或无线),选择"属性"
  4. 在列表中找到"Internet 协议版本 4 (TCP/IPv4)",双击打开
  5. 选择"使用以下 DNS 服务器地址",输入首选和备用 DNS
  6. 勾选"退出时验证设置",点击"确定"保存

常见问题排查

  • 修改后无法上网:检查是否输入了正确的 DNS 地址
  • 更改不生效:尝试运行ipconfig /flushdns清除 DNS 缓存
  • 需要恢复默认:选择"自动获取 DNS 服务器地址"

2.2 命令行配置方法

对于高级用户或需要批量配置的场景,可以使用 PowerShell 快速设置 DNS:

# 查看当前网络接口列表 Get-NetAdapter # 设置有线连接的DNS(假设接口名为"Ethernet") Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("223.5.5.5","223.6.6.6") # 设置无线连接的DNS(假设接口名为"Wi-Fi") Set-DnsClientServerAddress -InterfaceAlias "Wi-Fi" -ServerAddresses ("8.8.8.8","8.8.4.4") # 验证DNS设置 Get-DnsClientServerAddress -InterfaceAlias "Ethernet"

注意:使用命令行修改时,需要以管理员身份运行 PowerShell。接口名称可以通过Get-NetAdapter命令查看实际值。

3. Ubuntu 22.04 DNS 配置指南

Ubuntu 22.04 使用 Netplan 作为默认的网络配置工具,配置方式与 Windows 有所不同。

3.1 图形界面配置

  1. 点击右上角网络图标,选择"有线设置"或"Wi-Fi 设置"
  2. 找到当前连接,点击齿轮图标进入设置
  3. 切换到"IPv4"或"IPv6"选项卡
  4. 将"自动(DHCP)"改为"手动"
  5. 在"DNS"字段输入首选和备用 DNS,用逗号分隔
  6. 点击"应用"保存设置

3.2 命令行配置

对于服务器版或习惯命令行的用户,可以通过以下步骤配置:

# 查看当前网络接口名称 ip a # 编辑Netplan配置文件(根据实际文件名调整) sudo nano /etc/netplan/00-installer-config.yaml

在配置文件中添加 DNS 设置,示例如下:

network: version: 2 ethernets: enp3s0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [223.5.5.5, 8.8.8.8]

应用配置并测试:

# 应用新的网络配置 sudo netplan apply # 测试DNS解析 nslookup google.com dig example.com

4. DNS 配置验证与优化

修改 DNS 后,如何确认设置已生效并达到预期效果?以下是几种验证方法。

4.1 基础验证方法

在 Windows 和 Ubuntu 上都可以使用以下命令验证当前使用的 DNS 服务器:

Windows:

nslookup example.com

Ubuntu:

systemd-resolve --status | grep "DNS Servers"

4.2 DNS 响应速度测试

使用dig命令(Ubuntu 默认安装,Windows 可通过 WSL 或安装 BIND 工具获得)测试不同 DNS 的响应速度:

# 测试Google DNS响应时间 dig @8.8.8.8 google.com | grep "Query time" # 测试阿里DNS响应时间 dig @223.5.5.5 google.com | grep "Query time"

4.3 自动化测试脚本

创建一个简单的 Bash 脚本,批量测试多个 DNS 服务器的响应速度:

#!/bin/bash DNS_SERVERS=( "114.114.114.114" "223.5.5.5" "8.8.8.8" "1.1.1.1" "208.67.222.222" ) for server in "${DNS_SERVERS[@]}"; do echo -n "Testing $server ... " time=$(dig @$server google.com | grep "Query time" | awk '{print $4}') echo "$time ms" done

将上述脚本保存为dns_test.sh,然后赋予执行权限并运行:

chmod +x dns_test.sh ./dns_test.sh

5. 高级技巧与故障排除

5.1 双系统共享 DNS 配置

如果你经常在 Windows 和 Ubuntu 之间切换,可以创建一份统一的 DNS 配置清单:

  1. 在 Ubuntu 的/etc/resolv.conf中设置首选 DNS
  2. 在 Windows 中创建 PowerShell 脚本快速切换相同配置
  3. 使用同步工具(如 Syncthing)保持两份配置一致

5.2 DNS 缓存管理

DNS 查询结果会被缓存以提高性能,但有时需要手动清除:

Windows:

# 清除DNS缓存 ipconfig /flushdns

Ubuntu:

# 如果使用systemd-resolved sudo systemd-resolve --flush-caches # 如果使用dnsmasq sudo service dnsmasq restart

5.3 常见问题解决方案

  • DNS 泄露:使用加密 DNS(DoH/DoT)防止查询被窃听
  • DNS 污染:选择可信的公共 DNS 或自建 DNS 服务器
  • 区域限制:某些服务会根据 DNS 服务器位置返回不同内容

推荐工具

  • dnscrypt-proxy:支持多种加密 DNS 协议
  • pi-hole:自建 DNS 服务器,兼具广告过滤功能
  • Wireshark:网络抓包分析 DNS 查询问题

6. 安全注意事项

修改 DNS 设置虽然能提升网络体验,但也需要注意以下安全事项:

  1. 只使用可信的 DNS 服务:避免使用未知来源的 DNS,防止中间人攻击
  2. 定期检查 DNS 设置:某些恶意软件会篡改 DNS 设置进行钓鱼攻击
  3. 考虑使用加密 DNS:如 DNS over HTTPS (DoH) 或 DNS over TLS (DoT)
  4. 企业环境谨慎修改:公司网络可能有特定的 DNS 策略,修改前咨询 IT 部门

在 Ubuntu 上启用 DoH 的示例:

sudo apt install stubby sudo nano /etc/stubby/stubby.yml

找到并修改为以下内容:

upstream_recursive_servers: - address_data: 1.1.1.1 tls_auth_name: "cloudflare-dns.com" - address_data: 8.8.8.8 tls_auth_name: "dns.google"

7. 性能优化建议

根据实际使用场景,可以进一步优化 DNS 设置:

  1. 按网络环境自动切换:在家使用一种 DNS,在公司使用另一种
  2. 结合CDN优化:选择与网站CDN提供商相同的 DNS 可能获得更好的路由
  3. 负载均衡:配置多个 DNS 服务器,自动选择响应最快的
  4. 本地缓存:增大本地 DNS 缓存大小,减少重复查询

在 Windows 中调整 DNS 缓存大小的注册表项:

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters] "CacheHashTableBucketSize"=dword:00000001 "CacheHashTableSize"=dword:00000180 "MaxCacheEntryTtlLimit"=dword:0000fa00 "MaxSOACacheEntryTtlLimit"=dword:0000012d

8. 移动设备同步配置

为了在所有设备上获得一致的网络体验,可以考虑:

  1. 路由器级配置:在路由器上修改 DNS,所有连接设备自动生效
  2. 移动设备配置:Android/iOS 也支持自定义 DNS
  3. 配置备份:导出设置,方便重装系统后快速恢复

跨平台配置同步方案

  • 使用密码管理器保存各设备的 DNS 配置
  • 编写跨平台脚本自动应用相同设置
  • 企业环境可使用 MDM 工具统一管理

在实际项目中,我发现将阿里 DNS (223.5.5.5) 和 Google DNS (8.8.8.8) 组合使用,既能保证国内网站的访问速度,又能顺畅访问国际资源。特别是在开发需要调用多种API的项目时,这种混合配置显著减少了因DNS问题导致的连接超时。