Как настроить параметры DNS с помощью командной строки или файла bat в окнах 8
Я пробовал это:
netsh interface ip set dns name="Local Area Connection" source=static addr=none
но не работает.
Как настроить параметры DNS с помощью командной строки или файла bat в окнах 8
Я пробовал это:
netsh interface ip set dns name="Local Area Connection" source=static addr=none
но не работает.
Во-первых, имя сети, скорее всего, "Ethernet", а не "Подключение по локальной сети". Чтобы узнать это имя, вы можете:
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
Чтобы изменить DNS на автоматическую с помощью команды, вы можете запустить следующую команду:
netsh interface ip set dns "Local Area Connection" dhcp
В команде добавления и изменения 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Установить/изменить: (как это задал 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.
Вместо static вы можете ввести dhcp, чтобы сделать настройку DNS автоматической, но дальнейший параметр не потребуется.
Примечание: Протестировано в окнах 8,8,1 и 10.
Я написал этот script для переключения 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
Вот еще один способ изменить DNS с помощью WMIC (командная строка инструментария управления Windows).
Команды должны запускаться с правами администратора.
Очистить 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")
Ни один из ответов не работает для меня в 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
Пакетный файл для установки нового 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%
Теперь вы можете изменить первичные dns (index = 1), считая, что ваш интерфейс статичен (не использует dhcp)
Вы можете установить свои DNS-серверы статически, даже если вы используете DHCP для получения вашего IP-адреса.
Пример в 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