在网络世界中,域名系统(DNS)扮演着“互联网电话簿”的关键角色,它负责将我们易于记忆的网址(如 www.google.com)翻译成计算机能够理解的IP地址(如 250.191.78),默认情况下,我们的设备会使用互联网服务提供商(ISP)自动分配的DNS服务器,出于提升上网速度、增强安全性、规避审查或实现家长控制等目的,手动更换DNS服务器成为一个常见的需求,通过命令行工具来执行此操作,不仅高效快捷,更是服务器管理和自动化脚本中的必备技能。

准备工作:选择合适的DNS服务器
在执行任何命令之前,首要任务是确定您想要使用的DNS服务器地址,市面上有许多优秀的公共DNS服务提供商,它们通常免费且性能出色,以下是一些主流选择:
| 提供商 | 主DNS | 备用DNS | 特点 |
|---|---|---|---|
| 8.8.8 | 8.4.4 | 全球访问速度快,稳定可靠 | |
| Cloudflare | 1.1.1 | 0.0.1 | 强调隐私保护,速度快,响应时间短 |
| OpenDNS | 67.222.222 | 67.220.220 | 提供家庭安全选项,可过滤恶意内容 |
| 阿里DNS | 5.5.5 | 6.6.6 | 针对中国大陆用户优化,访问国内网站快 |
| 腾讯DNSPod | 29.29.29 | 254.116.116 | 同样针对国内用户优化,响应迅速 |
选择好DNS地址后,请确保您拥有当前操作系统的管理员权限,因为修改网络设置需要授权。
在不同操作系统中执行换DNS命令
不同操作系统的命令行工具和配置方法各异,下面将分别介绍在Windows、macOS和Linux系统中的具体操作步骤。
Windows系统
在Windows系统中,主要使用netsh(Network Shell)命令来管理网络设置。
-
查看当前网络连接名称 需要知道您的网络连接(如“以太网”或“WLAN”)的确切名称,可以通过以下命令查看:
netsh interface show interface记下您正在使用的连接的“接口名”。
-
设置静态DNS服务器 假设您的接口名为“以太网”,并打算使用Google的DNS,命令如下,请将
"以太网"替换为您的实际接口名,将IP地址替换为您选择的DNS。netsh interface ip set dns name="以太网" static 8.8.8.8 primary netsh interface ip add dns name="以太网" 8.8.4.4 index=2第一条命令设置主DNS,第二条命令添加备用DNS。
-
恢复为自动获取DNS 如果想撤销更改,让系统自动从ISP获取DNS,可以使用以下命令:
netsh interface ip set dns name="以太网" dhcp
macOS系统
在macOS中,networksetup是功能强大的网络配置命令行工具。
-
查看所有网络服务 列出所有可用的网络服务,以找到准确的名称(如“Wi-Fi”或“Ethernet”)。
networksetup -listallnetworkservices -
设置DNS服务器 假设您的服务名为“Wi-Fi”,并打算使用Cloudflare的DNS,命令如下:

sudo networksetup -setdnsservers "Wi-Fi" 1.1.1.1 1.0.0.1sudo表示需要管理员权限执行,您可以一次性设置多个DNS服务器,用空格隔开。 -
清除DNS设置(恢复自动获取) 要清除手动设置的DNS并恢复为自动获取,只需将DNS地址设置为“Empty”:
sudo networksetup -setdnsservers "Wi-Fi" Empty
Linux系统
Linux的生态较为多样,不同的发行版和桌面环境可能使用不同的网络管理工具,这里介绍两种最常见的方法。
临时修改(适用于所有发行版)
这种方法直接修改/etc/resolv.conf文件,简单直接,但通常在系统重启或网络服务重启后会被覆盖。
-
使用文本编辑器(如
nano或vim)打开文件:sudo nano /etc/resolv.conf -
将文件中原有的
nameserver行注释掉(在行首添加)或删除,然后添加新的DNS服务器:#nameserver 192.168.1.1 nameserver 1.1.1.1 nameserver 1.0.0.1 -
保存文件并退出,更改会立即生效。
使用NetworkManager(适用于Ubuntu、Fedora等现代桌面发行版)
nmcli是NetworkManager的命令行界面,可以持久化地修改网络配置。
-
查看当前网络连接名称
nmcli connection show记下您正在使用的连接的
NAME(Wired connection 1”或“我的Wi-Fi”)。
-
为指定连接设置DNS 假设连接名为“我的Wi-Fi”,使用Google DNS:
nmcli connection mod "我的Wi-Fi" ipv4.dns "8.8.8.8 8.8.4.4" -
应用更改 修改后,需要重新激活连接使配置生效:
nmcli connection up "我的Wi-Fi"
验证DNS更换是否成功
完成设置后,验证DNS是否已成功更换是至关重要的一步,最可靠的工具是nslookup或dig。
在Windows、macOS或Linux的终端中,执行以下命令:
nslookup google.com
输出的第一行或第二行会显示“Server:”信息,后面跟着的IP地址就是您当前正在使用的DNS服务器的地址,如果这个地址与您刚刚设置的地址一致,那么恭喜您,更换成功了。
相关问答FAQs
问题1:更换DNS后网速变慢了怎么办?
解答: DNS本身不直接影响您的带宽(即下载/上传速度),但它影响的是域名解析的响应时间,如果更换DNS后感觉上网变慢,通常是因为您选择的DNS服务器地理位置较远,或者网络拥堵导致解析延迟增加,您可以尝试以下步骤:1)更换其他知名的公共DNS,如从Google换到Cloudflare,或选择国内服务商的DNS;2)使用工具(如namebench)测试哪个DNS在您的网络环境下最快;3)如果问题依旧,可以按照本文介绍的方法恢复为ISP默认的DNS设置。
问题2:命令行修改DNS和图形界面修改有什么区别?
解答: 两者最终达到的效果是相同的,但过程和适用场景有显著区别。图形界面(GUI)修改方式直观、易于上手,适合普通用户,通过点击鼠标即可完成,不易出错。命令行(CLI)修改方式则更为高效、灵活,尤其适合以下场景:1)服务器管理:服务器通常没有图形界面,只能通过命令行操作;2)自动化脚本:可以将修改DNS的命令写入脚本,实现批量部署或定时任务;3)远程管理:通过SSH等远程工具连接时,命令行是唯一的选择;4)精确控制:命令行能提供比GUI更细粒度的配置选项,CLI是专业人士和系统管理员的利器,而GUI则更贴近日常用户。