hosts 파일은 어디서 왔나
위키백과(Hosts)에 따르면 초기 ARPANET에는 분산된 호스트 이름 데이터베이스가 없어 각 노드가 이름 대응표를 직접 관리했습니다. 1971년 MITRE의 페기 카프(Peggy Karp)가 발표한 RFC 226이 호스트 이름 표기의 초기 표준으로 소개되며 최초의 hosts.txt에 해당한다고 합니다. 이후 SRI가 ARPANET 참여 기관을 위한 중앙 HOSTS.TXT를 관리했고, 1985년 10월의 RFC 952("DoD Internet host table specification")가 그 형식을 규정했습니다. 중앙 집중 방식은 관리하기 어려워졌고, 이를 해결하기 위해 도메인 이름 시스템(DNS)이 1983년 설계되어 1984년 구현되었습니다. 오늘날 hosts 파일은 DNS 이전 시대의 방식이 개인 PC의 "로컬 재정의 장치"로 남은 것이라고 이해하면 쉽습니다. DNS 조회 전체 흐름은 DNS 조회 과정 가이드에서 볼 수 있습니다.
운영체제별 hosts 파일 위치
| 운영체제 | 경로 | 참고 |
|---|---|---|
| Windows NT 계열(Windows 11 포함) | %SystemRoot%\System32\drivers\etc\hosts | 일반적으로 C:\Windows\System32\drivers\etc\hosts. 마이크로소프트 문서가 이 폴더를 DatabasePath 기본값으로 안내 |
| 리눅스·유닉스 | /etc/hosts | 관리자 권한(sudo)으로 편집 |
| macOS (10.2 이후) | /etc/hosts | /private/etc/hosts를 가리키는 심볼릭 링크 |
| Android / iOS | /etc/hosts | 각각 /system/etc/hosts, /private/etc/hosts로 연결(위키백과 기준). 일반 사용자가 수정할 수 있는지는 기기·버전에 따라 다름 |
실제 기록으로 보는 사례
사례 1: Mydoom.B 웜과 hosts 파일 (2004년 1월)
위키백과(Mydoom)에 따르면 Mydoom 웜은 2004년 1월 26일경 처음 확인되어 당시 가장 빠르게 퍼진 이메일 웜으로 기록되었고, 최소 50만 대의 컴퓨터를 감염시킨 것으로 추정됩니다. 변종인 Mydoom.B(2004년 1월 28일 발견)는 hosts 파일을 수정해 마이크로소프트 사이트와 널리 쓰이는 온라인 백신 사이트, 보안업체 60여 곳의 웹사이트 접속을 막았다고 합니다. 이는 감염된 PC가 백신 업데이트나 제거 도구를 내려받기 어렵게 만드는 효과가 있었습니다. 여기서 배울 점은 hosts 파일이 "접속 대상을 조용히 바꿀 수 있는 장소"라는 것입니다. 특정 보안 사이트만 열리지 않는다면 hosts 파일을 점검 대상으로 삼을 이유가 됩니다. 구체적인 변조 방법은 여기서 다루지 않습니다.
사례 2: 개발자의 로컬 도메인 (가상 예시)
아래는 이해를 돕기 위한 가상 예시입니다. 개발자 A가 자기 PC의 웹 서버로 "myapp.test"라는 이름의 사이트를 시험하고 싶다고 합시다. hosts 파일 끝에 127.0.0.1 myapp.test 한 줄을 추가하면 이 PC에서 그 이름으로 접속할 때 자기 자신으로 연결됩니다. 시험이 끝나면 줄 앞에 #을 붙여 비활성화하고, 필요할 때만 다시 켭니다. 다른 PC에는 영향을 주지 않는다는 점이 이 방식의 장점입니다.
편집 전후 점검 목록
- 수정 전에 hosts 파일을 복사해 백업했는가(예: hosts.bak).
- 관리자 권한으로 열었는가(저장이 안 되는 대부분의 원인).
- 한 줄에 하나의 대응만 적었고 IP와 이름 사이를 공백으로 구분했는가.
- 적용이 안 되면 브라우저 재시작이나 DNS 캐시 정리를 했는가(DNS 캐시 삭제 가이드).
- 정기적으로 파일을 열어 내가 넣지 않은 줄이 없는지 확인하는가.
흔한 오해와 정정
- 오해: hosts 파일에 잘못 적으면 인터넷 전체가 끊긴다. 실제: 해당 도메인에만 영향을 줍니다. 줄을 지우거나 주석 처리하면 원래대로 돌아옵니다.
- 오해: hosts로 사이트를 차단하면 모든 기기에서 막힌다. 실제: 그 파일이 있는 기기에서만 적용됩니다.
- 오해: hosts는 항상 DNS보다 우선한다. 실제: 많은 환경에서 먼저 참고하지만, 이름 확인 순서는 운영체제·설정에 따라 달라질 수 있습니다.
- 오해: 광고 도메인 수만 개를 hosts에 넣으면 완벽한 광고 차단이 된다. 실제: 도메인 단위 차단만 가능하고 관리도 번거로워 전용 도구를 함께 쓰는 경우가 많습니다.
한계와 더 알아볼 점
hosts 파일은 이름 하나를 IP 하나로 짝짓는 단순한 장치라서 와일드카드나 조건부 규칙은 지원하지 않는 것이 일반적입니다. 또 앱이나 브라우저가 자체 DNS(예: DNS over HTTPS)를 사용하면 hosts 설정과 다르게 동작할 수 있으므로 결과를 직접 확인해야 합니다. 보안 프로그램이 hosts 변경을 경고하거나 막는지 여부는 제품마다 달라 이 글에서는 단정하지 않습니다.
DNS 캐시도 함께 정리해보세요
hosts 파일을 수정한 뒤에도 이전 접속 정보가 남아있는 것 같다면DNS 캐시 삭제(플러시)하는 방법을 참고해 캐시를 함께 지워보세요.
도메인의 실제 DNS 조회 과정도 궁금하다면
hosts 파일이 없을 때 도메인이 어떻게 IP로 바뀌는지 전체 과정이 궁금하다면DNS 조회(질의) 과정 완전정복도 확인해보세요.
자주 묻는 질문
hosts 파일을 수정해도 저장이 안 돼요.
일반 권한으로 열었을 가능성이 큽니다. Windows는 메모장을 "관리자 권한으로 실행"한 뒤 다시 열어야 하고, Mac·리눅스는 터미널에서 sudo 명령으로 편집기를 실행해야 저장까지 정상적으로 완료됩니다.
실수로 잘못 수정하면 인터넷이 안 되나요?
hosts 파일에 잘못된 항목을 추가해도 인터넷 연결 자체가 끊기지는 않지만, 해당 도메인으로의 접속만 실패하거나 엉뚱한 곳으로 연결될 수 있습니다. 추가한 줄을 지우거나 앞에 "#"을 붙여 주석 처리하면 바로 원래대로 되돌릴 수 있습니다.
hosts 파일을 수정하기 전에 꼭 백업해야 하나요?
필수는 아니지만 강력히 권합니다. 같은 폴더에 hosts.bak처럼 복사본을 만들어 두면 실수했을 때 바로 되돌릴 수 있고, 나중에 낯선 줄이 생겼는지 비교하는 기준으로도 쓸 수 있습니다.
내 hosts 파일에 모르는 항목이 있어요. 악성코드인가요?
광고 차단 목록이나 개발 도구가 추가한 줄일 수도 있어 단정할 수 없습니다. 내가 넣지 않았고 은행·포털·보안 사이트 이름이 낯선 IP에 연결되어 있다면 바이러스 검사를 하고, 신뢰할 수 있는 보안 도구나 전문가에게 점검을 받는 것이 좋습니다.
도메인 하나에 여러 이름을 적을 수 있나요?
위키백과 기준으로 한 줄에 IP 주소 뒤에 여러 이름을 공백으로 이어 쓸 수 있고, 같은 이름을 IPv4와 IPv6 주소에 각각 대응시킬 수도 있습니다.