Як я можу встановити свої налаштування DNS за допомогою командного рядка або файлу bat у Windows 8
Я спробував це:
netsh interface ip set dns name="Local Area Connection" source=static addr=none
але не працював.
Як я можу встановити свої налаштування DNS за допомогою командного рядка або файлу bat у Windows 8
Я спробував це:
netsh interface ip set dns name="Local Area Connection" source=static addr=none
але не працював.
Відповіді:
По-перше, ім'я мережі, швидше за все, "Ethernet", а не "Підключення до локальної мережі". Щоб дізнатися ім’я, ви можете зробити це:
netsh interface show interface
Що відображатиме назву в стовпці "Ім’я інтерфейсу" (показано тут напівжирним шрифтом):
Ім'я інтерфейсу типу штату адміністратора -------------------------------------------------- ----------------------- Увімкнено підключений виділений Ethernet
Тепер ви можете змінити основний dns (індекс = 1), припускаючи, що ваш інтерфейс є статичним (не використовуючи dhcp):
netsh interface ipv4 add dnsserver "Ethernet" address=192.168.x.x index=1
Оновлення 2018 р. - Команда працюватиме з dnsserver
(одниною) або dnsservers
(множиною). Наступний приклад використовує останнє і також є дійсним:
інтерфейс netsh ipv4 додати dnsservers "Ethernet" адресу = 192.168.xx index = 1
Щоб змінити DNS на автоматичний за допомогою команди, ви можете виконати таку команду:
netsh interface ip set dns "Local Area Connection" dhcp
Ось ще один спосіб змінити DNS за допомогою WMIC (командний рядок Windows Management Instrumentation).
Команди повинні бути запущені як адміністратор для застосування.
Очистити 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")
where (IPEnabled=TRUE)
на where "IPEnabled=TRUE"
.
Існує невелика різниця в командах додавання І зміни 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. Тут ви можете помітити, що ми не використовуємо параметр index, як це було при додаванні DNS.
На місці static
ви можете ввести, dhcp
щоб зробити налаштування DNS автоматичним, але додаткові параметри не потрібні.
Примітка: Перевірено у Windows 8,8.1 & 10.
Я написав цей сценарій для перемикання 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:
Лише кілька застережень:
Тепер ви можете змінити основний 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