한 줄 요약
컴퓨터는 도메인을 IP로 바꿀 때 내 PC의 hosts 파일을 DNS보다 먼저 확인해요. 그래서 hosts 파일에 적힌 IP가 있으면, DNS에 등록한 IP가 아니라 hosts의 IP로 접속돼요.
1. 핵심 개념
1.1 먼저 알아야 할 용어
용어 한 줄 설명
| 도메인(domain) | 사람이 기억하기 쉬운 서버 이름이에요 (예: example.com) |
| IP 주소 | 네트워크에서 컴퓨터를 찾는 실제 번호예요 |
| 이름 해석(name resolution) | 도메인을 IP 주소로 바꾸는 과정이에요 |
| DNS | 도메인과 IP 정보를 전 세계에 나눠 저장하고 알려 주는 시스템이에요 |
| A 레코드 | DNS에 저장하는 "이 도메인은 이 IPv4 주소" 라는 정보예요 |
| hosts 파일 | 내 PC 안에 도메인과 IP를 직접 적어 두는 텍스트 파일이에요 |
| 리졸버(resolver) | 운영체제에서 이름 해석을 담당하는 기능이에요 |
DNS의 기본 개념과 구조는 표준 문서 RFC 1034, RFC 1035에 정의되어 있어요.
1.2 도메인 등록 업체에서 하는 일
가비아 같은 도메인 업체의 DNS 관리 화면에서 A 레코드를 등록하면, 그 정보가 DNS에 공개돼요. 인터넷의 다른 컴퓨터들은 DNS에 물어봐서 이 IP를 알아내요.
- DNS 설정은 모든 사용자에게 적용돼요.
- hosts 파일은 그 파일이 있는 PC 한 대에만 적용돼요.
1.3 핵심 원리: 확인 순서
운영체제는 이름을 해석할 때 정해진 순서를 따라요.
Windows Microsoft 문서에 따르면 DNS 클라이언트 캐시에는 hosts 파일에서 미리 불러온 항목과 최근 DNS 조회 결과가 함께 들어 있어요. 리졸버는 DNS 서버에 묻기 전에 이 정보를 먼저 사용해요.
- hosts 파일 위치: C:\Windows\System32\drivers\etc\hosts
Linux /etc/nsswitch.conf 파일의 hosts: 줄이 확인 순서를 정해요. hosts: files dns는 /etc/hosts를 먼저 보고, 그다음 DNS를 조회한다는 뜻이에요.
- hosts 파일 위치: /etc/hosts
즉 hosts 파일에서 답을 찾으면, DNS 서버에는 묻지 않고 그 IP를 그대로 사용해요.
1.4 왜 중요한가
- 서버를 옮기기 전에, DNS를 바꾸지 않고 내 PC에서만 새 서버를 미리 테스트할 수 있어요.
- 반대로 hosts 설정을 잊으면, 다른 사람과 다른 서버에 접속하면서 원인을 찾기 어려워져요.
2. 쉽게 이해하기
이름 해석을 전화 걸기에 비유해 볼게요.

- DNS는 누구나 보는 공용 전화번호부예요.
- hosts 파일은 내 휴대폰의 개인 연락처예요.
"홍길동"에게 전화를 걸면, 휴대폰은 먼저 내 연락처를 찾아요. 연락처에 번호가 저장되어 있으면 공용 전화번호부는 보지 않아요.
그래서 공용 전화번호부에 010-A가 있어도, 내 연락처에 010-B로 저장되어 있으면 B로 전화가 걸려요. 다른 사람의 휴대폰은 여전히 A로 걸어요.
3. 실제 상황으로 보기
아래는 설명용 예시예요. 도메인은 예시 전용 도메인, IP는 문서 예시 전용 대역을 사용했어요.

위치 설정 내용
| 도메인 업체 DNS (A 레코드) | example.com → 203.0.113.10 (서버 A) |
| 내 PC의 hosts 파일 | 198.51.100.20 example.com (서버 B) |
3.1 내 PC에서 접속할 때
- 브라우저 주소창에 example.com을 입력해요.
- 운영체제 리졸버가 이름 해석을 시작해요.
- hosts 파일에서 example.com → 198.51.100.20을 찾아요.
- 답을 찾았으므로 DNS 서버에는 묻지 않아요.
- 브라우저는 서버 B(198.51.100.20) 에 접속해요.
3.2 다른 사람의 PC에서 접속할 때
- 그 PC의 hosts 파일에는 해당 항목이 없어요.
- 리졸버가 DNS 서버에 물어봐요.
- DNS가 A 레코드 203.0.113.10을 알려 줘요.
- 브라우저는 서버 A(203.0.113.10) 에 접속해요.
같은 주소를 입력해도, 어느 PC인지에 따라 접속하는 서버가 달라요.
3.3 hosts 파일 작성 형식
# IP주소 도메인
198.51.100.20 example.com
198.51.100.20 www.example.com
- 한 줄에 IP 주소와 도메인을 공백으로 구분해 적어요.
- # 뒤는 주석이에요.
- example.com과 www.example.com은 서로 다른 이름이라 각각 적어야 해요.
- 파일 수정에는 관리자 권한이 필요해요.
4. 접속 IP가 바뀌어도 도메인 이름은 그대로 전달돼요
hosts 파일은 어느 IP로 갈지만 바꿔요. 브라우저가 서버에 보내는 요청에는 여전히 example.com이라는 이름이 들어가요.
- HTTP 요청의 Host 헤더에 도메인 이름이 담겨요.
- HTTPS 연결 시 인증서는 도메인 이름 기준으로 검사돼요.
Host 헤더: 브라우저가 "이 도메인의 페이지를 주세요"라고 서버에 알려 주는 요청 정보예요.
인증서: 서버가 해당 도메인의 진짜 서버임을 증명하는 전자 문서예요.
그래서 서버 B에서 정상 화면을 보려면 두 가지가 필요해요.
- 서버 B가 example.com 요청을 처리하도록 설정되어 있어야 해요.
- HTTPS라면 서버 B에 example.com용 유효한 인증서가 있어야 해요. 없으면 브라우저가 인증서 경고를 표시해요.
5. 확인과 문제 해결
5.1 캐시 비우기
hosts 파일을 수정했는데 바로 반영되지 않으면, 이전 결과가 캐시에 남아 있을 수 있어요.
# Windows (관리자 권한 명령 프롬프트)
ipconfig /flushdns
Microsoft 문서에 따르면 이 명령은 DNS 클라이언트 캐시를 비우지만, hosts 파일에서 불러온 항목은 지우지 않아요. hosts 항목을 없애려면 파일에서 해당 줄을 삭제해야 해요.
브라우저가 자체 캐시나 기존 연결을 유지하는 경우도 있어요. 이때는 브라우저를 다시 시작해 확인해요.
5.2 nslookup 결과가 다른 이유
nslookup은 DNS 서버에 직접 질의하는 도구예요. hosts 파일을 거치지 않아요.
nslookup example.com
- nslookup 결과: DNS에 등록된 IP (서버 A)
- 브라우저 접속: hosts에 적힌 IP (서버 B)
두 결과가 다르면 hosts 파일 설정을 먼저 확인해요.
5.3 Windows에서 현재 적용 내용 보기
ipconfig /displaydns
hosts 파일에서 불러온 항목과 최근 DNS 조회 결과를 함께 볼 수 있어요.
6. 핵심 정리
- 도메인 업체의 DNS 설정은 모든 사용자에게, hosts 파일은 그 PC에만 적용돼요.
- 운영체제는 이름을 해석할 때 hosts 파일을 DNS보다 먼저 확인해요.
- hosts 파일에 항목이 있으면 DNS에 묻지 않고 그 IP로 접속해요.
- IP만 바뀌고 도메인 이름은 그대로 전달되므로, 대상 서버의 설정과 인증서가 맞아야 해요.
- nslookup은 hosts를 거치지 않아, 브라우저 접속 결과와 다를 수 있어요.
7. 추가 정보
활용 사례
- 서버 이전 테스트: DNS를 바꾸기 전에 새 서버를 내 PC에서만 확인해요.
- 개발 환경: 로컬 서버에 실제와 같은 도메인으로 접속해 테스트해요.
주의사항
- 테스트가 끝나면 hosts 항목을 삭제해야 해요. 남겨 두면 실제 서비스와 다른 서버에 계속 접속해요.
- hosts 파일은 이름 해석 결과를 바꾸므로, 악성 프로그램이 변조하는 대상이 되기도 해요. 모르는 항목이 있으면 확인이 필요해요.
- 브라우저의 보안 DNS(DNS over HTTPS) 설정이 hosts 파일 적용에 어떤 영향을 주는지는 브라우저별로 공식 문서에서 명확히 확인되지 않아요. 결과가 예상과 다르면 해당 설정을 함께 확인하세요.
- Linux 배포판에 따라 nsswitch.conf의 기본 순서가 다를 수 있어요. hosts: 줄을 직접 확인하세요.
- DNS 설정 변경이 다른 사용자에게 반영되기까지는 레코드의 TTL(캐시 유지 시간) 등의 영향을 받아요.
예시 값 안내
- example.com은 RFC 2606에 따라 예시용으로 예약된 도메인이에요.
- 203.0.113.0/24, 198.51.100.0/24는 RFC 5737에 따라 문서 예시용으로 예약된 IP 대역이에요.
'네트워크 및 하드웨어 > 네트워크(Network)' 카테고리의 다른 글
| SSH Config 파일 완벽 정리 | 비밀번호·키 인증·포트 변경 한 번에 설정하는 법 (0) | 2026.04.20 |
|---|---|
| HTTP vs 소켓(WebSocket) vs SOAP 통신 차이점 완벽 정리 | 초보자도 이해하는 웹 통신 방식 (0) | 2026.03.31 |
| macOS에서 SSH Key 파일로 서버 접속하는 법 (0) | 2026.03.27 |
| 하이웨어(HIWARE)란? IT 보안 필수 솔루션 쉽게 이해하기 (0) | 2026.03.25 |
| Mac에서 Homebrew로 PuTTY 설치하기 (0) | 2026.03.20 |