9 ответов:
во-первых, имя сети, скорее всего, "Ethernet", а не "Подключение по локальной сети". Чтобы узнать имя вы можете сделать это:
netsh interface show interfaceкоторый покажет имя в столбце" имя интерфейса " (показано здесь жирным шрифтом):
Admin State State Type Interface Name ------------------------------------------------------------------------- Enabled Connected Dedicated Ethernetтеперь вы можете изменить основной dns (индекс=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
чтобы изменить DNS на автоматический с помощью команды, вы можете выполнить следующую команду:
netsh interface ip set dns "Local Area Connection" dhcp
есть небольшая разница в команду добавлять и изменение DNS-IPs:
Добавить:
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-это рекурсивный DNS-сервер Google, используйте его, если ваш не работает
Установить/Изменить: (как ОП попросил это)
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. Вы можете заметить, что здесь мы не используем index-parameter, как при добавлении DNS.вместо
staticвы можетеdhcpчтобы сделать настройку DNS автоматической, но дальнейший параметр не потребуется.
Примечание: проверен в для Windows 8,8.1 & 10.
вот еще один способ изменить DNS с помощью WMIC (Windows Management Instrumentation Command-line).
команды должны выполняться от имени администратора для применения.
очистить 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")
Я написал этот скрипт для переключения 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
ни один из ответов не работает для меня на 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%
вот ваш новый друг: QuickSetDNS, по NirSoft, удивительно, как обычно.
Он также может быть использован в командной строке :) с этими преимуществами перед netsh:
- более простой синтаксис, в частности для установки альтернативного сервера
- автоматически запрашивает повышение привилегий
несколько предостережений:
- поддерживает только IPv4, а не из IPv6
в командной строке следует использовать UUID адаптера, а не понятное имя (например, "подключение по локальной сети")начиная с QuickSetDNS 1.21, имена соединений также поддерживаются ;)
теперь вы можете изменить основной dns (индекс=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

Comments