programing

Windows 8에서 명령 프롬프트를 사용하여 DNS를 설정 / 변경하려면 어떻게해야합니까?

nasanasas 2020. 10. 23. 07:59
반응형

Windows 8에서 명령 프롬프트를 사용하여 DNS를 설정 / 변경하려면 어떻게해야합니까?


Windows 8에서 명령 프롬프트 또는 bat 파일을 사용하여 DNS 설정을 지정하려면 어떻게해야합니까?

나는 이것을 시도했다 :

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

하지만 작동하지 않았습니다.


첫째, 네트워크 이름은 "로컬 영역 연결"이 아니라 "이더넷"일 가능성이 높습니다. 이름을 찾으려면 다음을 수행하십시오.

netsh interface show interface

"인터페이스 이름"열 아래에 이름이 표시됩니다 (여기에 굵게 표시됨).

관리 상태 상태 유형 인터페이스 이름
-------------------------------------------------- -----------------------
연결된 전용 이더넷 활성화        

이제 인터페이스가 정적이라고 가정하고 (dhcp를 사용하지 않음) 기본 DNS (index = 1)를 변경할 수 있습니다.

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

2018 업데이트- 이 명령은 dnsserver(단수) 또는 dnsservers(복수) 와 함께 작동합니다 . 다음 예제는 후자를 사용하며 유효합니다.

netsh 인터페이스 ipv4 add dnsservers "Ethernet"address = 192.168.xx 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
  • 여기에서 "네트워크 인터페이스 이름"을 알기 위해 command를 입력합니다. 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: disable DNS, both: set 기본 및 보조 DNS 둘 다, primary : 기본 DNS 전용입니다. 여기서 DNS를 추가 할 때처럼 인덱스 매개 변수를 사용하지 않는다는 것을 알 수 있습니다.

  • 대신 static입력 dhcp하여 DNS 설정을 자동으로 만들 있지만 추가 매개 변수는 필요하지 않습니다.


참고 : Windows 8,8.1 및 10에서 테스트되었습니다.


다음은 WMIC (Windows Management Instrumentation 명령 줄)를 사용하여 DNS를 변경하는 또 다른 방법입니다.

명령을 적용하려면 관리자 권한으로 실행해야합니다.

DNS 서버 지우기 :

wmic nicconfig where (IPEnabled=TRUE) call SetDNSServerSearchOrder ()

DNS 서버 1 개 설정 :

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%

다음은 새로운 친구입니다. NirSoft의 QuickSetDNS , 평소처럼 놀랍습니다.

screenshot

netsh에 비해 다음과 같은 장점이있는 명령 줄에서도 사용할 수 있습니다.

  • 더 쉬운 구문, 특히 대체 서버 설정
  • 자동으로 권한 상승 요청


몇 가지주의 사항 :

  • IPv6이 아닌 IPv4 설정 만 지원
  • 명령 줄에서는 친숙한 이름이 아닌 어댑터 UUID를 사용해야합니다 (예 : "로컬 영역 연결"). QuickSetDNS 1.21부터 연결 이름도 지원됩니다.)

이제 인터페이스가 정적이라고 가정하고 (dhcp를 사용하지 않음) 기본 DNS (인덱스 = 1)를 변경할 수 있습니다.

You can set your DNS servers statically even if you use DHCP to obtain your IP address.

Example under Windows 7 to add two DN servers, the command is as follows:

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

참고URL : https://stackoverflow.com/questions/18620173/how-can-i-set-change-dns-using-the-command-prompt-at-windows-8

반응형