如何在Windows 8上使用命令提示符设置/更改DNS

时间:2013-09-04 17:25:31

标签: windows-8 dns command-prompt

如何使用Windows 8上的命令提示符或bat文件

设置DNS设置

我试过了:

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

但没有奏效。

9 个答案:

答案 0 :(得分:84)

首先,网络名称可能是“以太网”,而不是“本地连接”。要找出名称,您可以这样做:

netsh interface show interface

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

Admin State    State          Type             Interface Name
-------------------------------------------------------------------------
Enabled        Connected      Dedicated        Ethernet

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

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

2018更新 - 该命令适用于dnsserver(单数)或dnsservers(复数)。以下示例使用后者并且也有效:

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

答案 1 :(得分:27)

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

netsh interface ip set dns "Local Area Connection" dhcp

答案 2 :(得分:19)

添加 AND 更改 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:禁用DNS,both:设置主DNS和辅助DNS,主要:仅适用于主DNS。你可以注意到我们没有像添加DNS那样使用index-parameter。

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


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

答案 3 :(得分:17)

以下是使用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")

答案 4 :(得分: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

答案 5 :(得分:9)

在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

这使用Google DNS。您可以使用命令netsh int show interface

获取接口名称

答案 6 :(得分: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%

答案 7 :(得分:1)

这是你的新朋友:QuickSetDNS,NirSoft,像往常一样惊人。

screenshot

它也可以在命令行:)中使用,具有netsh的这些优点:

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

了几点:

  • 仅支持IPv4的设置,而不支持IPv6的设置
  • 在命令行中,应该使用适配器UUID,而不是友好名称(例如“Local Area Connection”),因为QuickSetDNS 1.21,也支持连接名称;)

答案 8 :(得分: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