netsh interface ip set dns "接口名" static DNS地址 primary
可添加首选DNS,用netsh interface ip add dns "接口名" DNS地址 index=2
可添加备用DNS。如何用命令添加DNS
Windows系统下通过命令添加DNS
(一)使用netsh
命令
在Windows系统中,netsh
是一个强大的网络配置命令行工具。
- 打开命令提示符
以管理员身份运行命令提示符,可以通过在开始菜单中搜索“命令提示符”,然后右键点击选择“以管理员身份运行”。
- 查看当前网络接口
- 输入命令
netsh interface show interface
,这会列出系统中所有的网络接口,包括以太网和无线网卡等,找到你想要配置DNS的网络接口名称,例如可能是“以太网”或者“Wi Fi”。
- 输入命令
- 添加DNS服务器
- 假设要为名为“以太网”的接口添加DNS服务器,命令格式如下:
netsh interface ip set dns name = "以太网" source = static addr = 新的DNS地址
- 要将DNS服务器设置为8.8.8.8,命令就是
netsh interface ip set dns name = "以太网" source = static addr = 8.8.8.8
,如果还想添加第二个DNS服务器,比如8.8.4.4,可以再次运行命令netsh interface ip add dns name = "以太网" addr = 8.8.4.4
。
- 假设要为名为“以太网”的接口添加DNS服务器,命令格式如下:
(二)修改注册表(不推荐,除非特殊情况)
- 打开注册表编辑器
按Win + R键,输入“regedit”并回车,打开注册表编辑器,注意修改注册表有一定风险,如果操作不当可能导致系统不稳定等问题。
- 定位到相关键值
- 对于基于IPv4的DNS配置,展开
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{网络接口GUID}
,其中{网络接口GUID}
对应不同的网络接口,可以通过查看网络连接属性中的详细信息来获取网络接口的GUID。 - 对于基于IPv6的DNS配置,路径是
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP6\Parameters\Interfaces\{网络接口GUID}
。
- 对于基于IPv4的DNS配置,展开
- 添加DNS服务器地址
在相应的键值下,新建一个“字符串值”,名称为“NameServer”,数值数据为要添加的DNS服务器地址,如果有多个DNS服务器,可以依次创建多个“NameServer”字符串值。
Linux系统下通过命令添加DNS
(一)修改网络配置文件(不同发行版可能略有不同)
- 对于基于Debian/Ubuntu的系统
- 打开终端。
- 网络配置文件通常位于
/etc/network/interfaces
,可以使用文本编辑器(如nano
或vim
)打开这个文件,使用命令sudo nano /etc/network/interfaces
。 - 在对应的网络接口配置部分(如
auto eth0
对应的iface eth0 inet dhcp
或者iface eth0 inet static
),如果是静态IP配置,可以在iface eth0 inet static
部分添加dns nameservers 新的DNS地址
,要添加DNS服务器8.8.8.8和8.8.4.4,可以写成dns nameservers 8.8.8.8 8.8.4.4
。 - 保存文件并退出编辑器,然后可以使用命令
sudo ifdown eth0
和sudo ifup eth0
来使配置生效,其中eth0
是你的网络接口名称,实际名称可能因系统而异。
- 对于基于Red Hat/CentOS的系统
- 打开终端。
- 网络配置文件可能在
/etc/sysconfig/network scripts/ifcfg eth0
(假设网络接口是eth0)等位置,可以使用命令sudo vi /etc/sysconfig/network scripts/ifcfg eth0
打开文件。 - 如果是静态IP配置,可以在文件中添加
DNS=新的DNS地址
,例如DNS="8.8.8.8 8.8.4.4"
。 - 保存文件后,使用命令
sudo systemctl restart network
来重启网络服务,使配置生效。
(二)使用resolvconf
(部分Linux系统适用)
- 安装resolvconf(如果未安装)
- 在基于Debian/Ubuntu的系统中,可以使用命令
sudo apt get install resolvconf
来安装。
- 在基于Debian/Ubuntu的系统中,可以使用命令
- 添加DNS服务器
- 可以通过编辑
/etc/resolvconf/resolv.conf.d/base
文件(或者其他自定义的配置文件)来添加DNS服务器,使用文本编辑器打开该文件,添加类似nameserver 新的DNS地址
的行,添加nameserver 8.8.8.8
。 - 然后运行命令
sudo resolvconf u
来更新DNS配置。
- 可以通过编辑
Mac系统下通过命令添加DNS
(一)使用networksetup
命令
- 打开终端
可以通过在“应用程序”文件夹中的“实用工具”目录下找到“终端”并打开。
- 查看网络接口
- 输入命令
networksetup listallnetworkservices
,这会列出系统中所有的网络服务,包括Wi Fi和以太网等接口。
- 输入命令
- 添加DNS服务器
- 假设要为名为“Wi Fi”的接口添加DNS服务器,命令格式如下:
sudo networksetup setdnsservers "Wi Fi" 新的DNS地址
- 要将DNS服务器设置为8.8.8.8和8.8.4.4,命令就是
sudo networksetup setdnsservers "Wi Fi" 8.8.8.8 8.8.4.4
,输入命令后可能需要输入管理员密码。
- 假设要为名为“Wi Fi”的接口添加DNS服务器,命令格式如下:
以下是一个简单的对比表格,小编总结不同系统下添加DNS命令的一些特点:
系统 | 命令工具 | 示例命令 | 是否需要重启网络服务 |
---|---|---|---|
Windows | netsh | netsh interface ip set dns name = "以太网" source = static addr = 8.8.8.8 | 一般不需要立即重启,配置可能即时生效 |
Windows | 注册表编辑 | 定位到相关键值,新建“NameServer”字符串值 | 可能需要重启或重新连接网络 |
Linux(Debian/Ubuntu) | 修改网络配置文件 | sudo nano /etc/network/interfaces,添加dns nameservers相关配置 | 需要使用ifdown和ifup命令或者重启网络服务 |
Linux(Red Hat/CentOS) | 修改网络配置文件 | sudo vi /etc/sysconfig/network scripts/ifcfg eth0,添加DNS配置 | 需要重启网络服务 |
Linux(部分) | resolvconf | 编辑/etc/resolvconf/resolv.conf.d/base,添加nameserver,然后sudo resolvconf u | 取决于具体网络配置和服务状态 |
Mac | networksetup | sudo networksetup setdnsservers "Wi Fi" 8.8.8.8 8.8.4.4 | 一般即时生效,但某些情况下可能需要重新连接网络 |
相关问题与解答
(一)问题
如何在Windows系统中删除通过命令添加的DNS服务器?
解答:在Windows系统中,如果要删除通过netsh
命令添加的DNS服务器,可以使用以下命令,假设要删除之前添加到“以太网”接口的DNS服务器8.8.8.8,命令是netsh interface ip delete dns name = "以太网" addr = 8.8.8.8
,如果要删除所有通过netsh
添加的DNS服务器,可以先查看当前的DNS服务器列表(通过netsh interface ip show dns
命令),然后逐个删除,如果是通过修改注册表添加的DNS服务器,需要找到对应的注册表项,删除相关的“NameServer”字符串值,不过修改注册表要小心操作,以免引起系统问题。
(二)问题
在Linux系统中,如何查看当前正在使用的DNS服务器?
解答:在Linux系统中,有多种方法可以查看当前正在使用的DNS服务器,一种简单的方法是查看/etc/resolv.conf
文件,可以使用命令cat /etc/resolv.conf
来查看其中的内容,文件中出现的“nameserver”行后面的地址就是当前正在使用的DNS服务器地址,在一些Linux发行版中,还可以使用网络管理工具的命令来查看,在基于Debian/Ubuntu的系统中,可以使用nmcli dev show | grep DNS
命令来查看网络接口的DNS配置信息;在基于Red Hat/CentOS的系统中,可以使用ip addr show eth0 | grep dns
(假设网络接口是eth0)等命令来查看相关的DNS信息