82

如何在 Windows 8 上使用命令提示符或 bat 文件设置我的 DNS 设置

我试过这个:

netsh interface ip set dns name="Local Area Connection" source=static addr=none

但没有奏效。

4

9 回答 9

88

首先,网络名称可能是“以太网”,而不是“本地连接”。要找出名称,您可以执行以下操作:

netsh interface show interface

这将在“接口名称”列下显示名称(此处以粗体显示):

管理状态 状态类型 接口名称
-------------------------------------------------- ----------------------
启用连接的专用        以太网

现在您可以更改主 dns (index=1),假设您的接口是静态的(不使用 dhcp):

netsh interface ipv4 add dnsserver "Ethernet" address=192.168.x.x index=1

2018 更新 - 该命令将与dnsserver(单数)或dnsservers(复数)一起使用。以下示例使用后者并且也是有效的:

netsh 接口 ipv4 添加dnsservers “以太网”地址=192.168.xx 索引=1
于 2013-09-05T02:19:28.897 回答
30

要通过命令将 DNS 更改为自动,可以运行以下命令:

netsh interface ip set dns "Local Area Connection" dhcp
于 2014-04-08T11:53:13.930 回答
24

这是使用 WMIC(Windows Management Instrumentation 命令行)更改 DNS 的另一种方法。

这些命令必须以管理员身份运行才能应用。

清除 DNS 服务器:

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ()

设置 1 个 DNS 服务器:

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("8.8.8.8")

设置 2 个 DNS 服务器:

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ("8.8.8.8", "8.8.4.4")

在特定网络适配器上设置 2 个 DNS 服务器:

wmic nicconfig where "(IPEnabled=TRUE) and (Description = 'Local Area Connection')" call SetDNSServerSearchOrder ("8.8.8.8", "8.8.4.4")

另一个设置域搜索列表的例子:

wmic nicconfig call SetDNSSuffixSearchOrder ("domain.tld")
于 2016-07-14T12:52:36.700 回答
19

添加更改DNS-IP的命令几乎没有区别:

添加:

Syntax:
   netsh interface ipv4 add dnsserver "Network Interface Name" dns.server.ip index=1(for primary)2(for secondary)
Eg:
   netsh interface ipv4 add dnsserver "Ethernet" 8.8.8.8 index=1
  • 在这里,要知道“网络接口名称”,请键入命令netsh interface show interface
  • 8.8.8.8 是 Google 的递归 DNS 服务器,使用它,如果你的不工作

设置/更改:(正如 OP 要求的那样)

Syntax:
   netsh interface ipv4 set dnsservers "Network Interface Name" static dns.server.ip primary
Eg:
   netsh interface ipv4 set dnsservers "Wi-Fi" static 8.8.4.4 primary
   netsh interface ipv4 set dnsservers "Wi-Fi" dhcp
  • 最后一个参数可以是none:disable DNS,both:set 用于主 DNS 和辅助 DNS,primary:仅用于主 DNS。您可以注意到这里我们没有像添加 DNS 那样使用索引参数。

  • 您可以代替static键入dhcp以使 DNS 设置自动进行,但不需要进一步的参数。


注意:在 Windows 8,8.1 和 10 中测试。

于 2015-04-13T05:33:31.853 回答
15

我编写了这个脚本,用于将所有当前启用的接口的 DNS 服务器切换到特定地址:

@echo off

:: Google DNS
set DNS1=8.8.8.8
set DNS2=8.8.4.4

for /f "tokens=1,2,3*" %%i in ('netsh int show interface') do (
    if %%i equ Enabled (
        echo Changing "%%l" : %DNS1% + %DNS2%
        netsh int ipv4 set dns name="%%l" static %DNS1% primary validate=no
        netsh int ipv4 add dns name="%%l" %DNS2% index=2 validate=no
    )
)

ipconfig /flushdns

:EOF
于 2015-02-01T12:33:56.383 回答
14

在 Windows 10 上,没有一个答案对我有用,所以这就是我使用的:

@echo off

set DNS1=8.8.8.8
set DNS2=8.8.4.4
set INTERFACE=Ethernet

netsh int ipv4 set dns name="%INTERFACE%" static %DNS1% primary validate=no
netsh int ipv4 add dns name="%INTERFACE%" %DNS2% index=2

ipconfig /flushdns

pause

这使用谷歌 DNS。您可以使用命令获取接口名称netsh int show interface

于 2015-08-07T14:15:00.580 回答
3

用于设置新 dns 服务器的批处理文件

@echo off
rem usage: setdns <dnsserver> <interface>
rem default dsnserver is dhcp
rem default interface is Wi-Fi
set dnsserver="%1"
if %dnsserver%=="" set dnsserver="dhcp"
set interface="%2"
if %interface%=="" set interface="Wi-Fi"
echo Showing current DNS setting for interface a%interface%
netsh interface ipv4 show dnsserver %interface%
echo Changing dnsserver on interface %interface% to %dnsserver%
if %dnsserver% == "dhcp" netsh interface ipv4 set dnsserver %interface% %dnsserver%
if NOT %dnsserver% == "dhcp" netsh interface ipv4 add dnsserver %interface% address=%dnsserver% index=1
echo Showing new DNS setting for interface %interface%
netsh interface ipv4 show dnsserver %interface%
于 2014-08-13T01:56:30.767 回答
2

这是您的新朋友: NirSoft 出品的QuickSetDNS,一如既往地令人惊叹。

截屏

它也可以在命令行中使用 :) 与 netsh 相比具有以下优点:

  • 更简单的语法,特别是用于设置备用服务器
  • 自动请求权限提升


只是一些警告:

  • 仅支持 IPv4 设置,不支持 IPv6
    • 自 QuickSetDNS 1.30 起,也支持设置 IPv6 DNS 服务器;)
  • 在命令行中,应使用适配器 UUID,而不是友好名称(例如“本地连接”)
    • 自 QuickSetDNS 1.21 起,还支持连接名称;)
于 2018-05-31T01:46:39.877 回答
0

现在您可以更改主 dns (index=1),假设您的接口是静态的(不使用 dhcp)

即使您使用 DHCP 获取 IP 地址,您也可以静态设置 DNS 服务器。

Windows 7下添加两台DN服务器示例,命令如下:

netsh interface ipv4 add dns "Local Area Connection" address=192.168.x.x index=1 netsh interface ipv4 add dns "Local Area Connection" address=192.168.x.x index=2

于 2015-01-12T23:12:56.523 回答