Как настроить параметры 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