DNS에 대해 알아보고, 그 우선순위와
이를 제어하는 cmd명령어에 대해 알아보자
[ DNS란? ]
[ DNS 쿼리 우선순위 (Windows) ]
Windows 컴퓨터에서 DNS에 IP주소를 쿼리하는
우선순위는 위 그림과 같다.
①에 물어보고 없으면, ②에 물어보고,
②에도 없으면 ③에 물어보고 이런식...
(* ①에서 결과를 받는데 성공하면,
②에 가지않고 쿼리가 끝남.)
만일, 우선순위가 높은 요소가 해커에 의해
조작된 경우, 정상적인 URL을 입력해도
해커가 만든 사이트로 이동하는 현상이
발생하게 된다. (* 피싱 사이트, DNS 스푸핑)
[ 다운로드 ]
hosts파일 백업
CMD 명령어 모음
* 도메인 주소 : http://나 https://를 제외한
나머지 부분.
** 메모장에서 CTRL + H(모두 바꾸기)를 이용하면
'도메인 주소', '이더넷' 부분을 간편하게
원하는 내용으로 변경할 수 있음.
[ DNS 요소 관련 CMD 명령어 ]
1) DNS Cache
- ipconfig /displaydns
: DNS Cache 내용 확인
* ping "도메인 주소" 명령어 이후에 실행하면,
내용이 추가된 것을 확인할 수 있다.
- ipconfig /flushdns
: DNS Cache 초기화
2) hosts파일과 hosts.ics파일
- start C:\Windows\System32\drivers\etc
: hosts파일 관련 폴더 열기
- type C:\Windows\System32\drivers\etc\hosts
: hosts파일의 내용 확인
1.1.1.1 www.naver.com
(IP주소) (도메인)
* 문장에 '#'이 들어가면 #을 기준으로
오른쪽이 컴퓨터가 무시하는 부분(주석)이 된다.
(* 주석 : 설명, 기록, 메모 용으로 활용되며,
특정한 명령어를 동작하지 않게 함으로써
테스트를 하거나 하는데도 사용된다.)
- dir C:\Windows\System32\drivers\etc
| findstr "hosts.ics$"
: hosts.ics 파일이 존재하는지 확인
3) 로컬에서 설정한 DNS 서버
/ 축약 /
원본 : netsh interface ipv4 set dnsserver name=
"이더넷" static 1.1.1.1 primary no
축약 : netsh int ip set dns "이더넷"
static 1.1.1.1 primary no
: interface를 int로, ipv4를 ip로
dnsserver name=를 dns로 줄여서 쓸 수 있음.
(예를들어서, a로 시작하는게 address만 있으면
a만 입력해도 address로 인식함.)
- netsh int ip show config
: IP, DNS 및 DHCP 사용여부 확인가능.
** dns name="이더넷" 부분은
없는 인터페이스명에 대해 별다른 결과 표시가 없기
때문에, 이 부분에서 인터페이스 목록을 확인하고
알맞게 입력해줘야 함.
(네트워크 속성이나 ipconfig로도 확인가능함.)
- netsh int ip set dns "이더넷" dhcp
: 해당 네트워크 어댑터(인터페이스)에 대해
'자동으로 DNS 서버 주소 받기'로 변경
- netsh int ip set dns "이더넷"
static 1.1.1.1 primary no
: '기본 설정 DNS 서버'를 입력한 IP로 설정.
** 유효하지 않은 IP인 경우,
CMD가 잠깐 멈추는 현상이 발생할 수 있음.
(유효하지 않아도 추가는 됨)
→ 명령어의 맨 오른쪽 끝에 no를 붙이면
유효성을 체크하지 않고 그냥 추가됨.
** '이더넷 속성'까지 닫았다가 다시 열어야
명령어에 의한 변경을 확인할 수 있다.
- netsh int ip add dns "이더넷"
2.2.2.2 index=2 no
: DNS 서버에 우선순위 2로 주소 추가
* 만약, 아무것도 없으면 제일 첫번째가 됨
* index=1로 하면, 해당 ip가 제일 첫번째
즉, '기본 설정 DNS 서버'가 됨
* index 3이상은 '고급' > DNS 탭에서 확인
* 네트워크 속성 > 어댑터 설정 변경 >
> 요소 우클릭 및 속성 > TCP/IPv4 클릭 및 속성 >
> 고급 > DNS탭
- netsh int ip delete dns "이더넷" 1.1.1.1 no
: 해당 ip를 dns서버에서 제거.
* index=1인 것을 delete하면
앞으로 당겨져서 index=2(보조)였던 것이
index=1(기본)로 바뀔 수 있다.
- netsh int ip delete dns "이더넷" all
: 'netsh int ip set dns "이더넷" dhcp'와 동일한 결과
* 명령어의 마지막에 no를 붙이면
오류 내용이 표시되지 않음.
4) 공유기의 DNS 설정
(내부 네트워크 DNS)
* 통신사에서 제공하는 기본 공유기에서는
해당 설정 목록이 안나온다...
무선 인터넷인 경우, 기본 게이트웨이 IP를
브라우저의 주소창에 입력하면
'공유기 설정 페이지'로 진입할 수 있다.
* IpTime 공유기 설정에 내부 네트워크 DNS를
설정하는 항목이 존재한다.
* 유선연결(이더넷)인 경우에는
내부 네트워크 DNS로 접근할 수 없는 것 같다.
5) 외부 네트워크 DNS
... 이쪽은 써본적이 없어서 좀 더 연구가 필요함 ...
+) 기타 명령어
- ipconfig /all
: 컴퓨터의 IP주소, DNS서버,
게이트웨이 주소 등 확인 가능.
- nslookup "도메인 주소"
: 해당 도메인에 대한 IP주소 확인.
(hosts파일 설정의 영향 X)
+ DNS 서버 수정한 것은 반영됨.
- ping "도메인 주소"
: 해당 도메인에 대한 IP주소 확인 가능.
(hosts파일 설정의 영향 O)
* ping /?를 하면 명령어에 대한 설명 확인가능.
-n 1 : 한번만 핑을 보내기
-w 1 : 1ms 동안만 대기하기
* findstr은 입력한 문자열에 대해 찾는 것으로
|를 통해 가져온 왼쪽 명령어의 결과(문자열)로부터
Ping으로 시작하는 문장을 찾아서 표시한다.
* findstr /?를 하면 상세설명 확인가능.
[ 참고자료 ]
댓글