본문 바로가기
AI Journey/리눅스

[Linux] /etc/hosts 파일 이해하기

by 보눔비스타 2026. 1. 1.

리눅스 시스템이 도메인 이름(Hostname)을 IP 주소로 변환할 때 가장 먼저 참고하는 파일이 있다. 바로 /etc/hosts 파일이다.

/etc/hosts는 리눅스 시스템이 외부 DNS 서버를 찾기 전에 먼저 펼쳐보는 로컬 네임 서버(Local Name Server) 역할을 한다.

서버 관리나 도커 컨테이너 간의 통신 구조를 이해하기 위해 반드시 알아야 할 기본 파일이다.

1. DNS보다 높은 우선순위

리눅스 커널은 네트워크 통신 시 숫자로 된 IP 주소(예: 123.456.0.1)를 사용한다.

하지만 사용자는 기억하기 쉬운 도메인 이름(예: google.com)을 사용한다.

보통은 DNS(Domain Name System) 서버에 쿼리를 날려 도메인에 매핑된 IP 주소를 받아온다.

하지만 리눅스는 DNS 서버에 물어보기 전에, 로컬에 있는 /etc/hosts 파일을 가장 먼저 확인하도록 설계되어 있다.

 

[우선순위]

  1. 명령어 또는 주소 입력 (ping myserver)
  2. /etc/hosts 파일 조회 (설정값이 있으면 즉시 해당 IP로 접속)
  3. DNS 서버 조회 (파일에 없으면 외부 서버에 질의)

즉, 이 파일에 정의된 설정은 전 세계 공통 DNS 정보보다 높은 우선순위를 가진다.

 

2. 파일 구조와 리눅스에서의 활용

/etc/hosts는 텍스트 파일이다.

터미널에서 cat /etc/hosts 명령어로 내용을 확인할 수 있으며, 수정하려면 sudo vi /etc/hosts와 같이 루트(Root) 권한이 필요하다.

 

작성 규칙은 [IP 주소] [호스트 이름(alias)] 순서다.

 

# /etc/hosts 예시
127.0.0.1       localhost
123.456.0.10    dev-db-server
8.8.8.8         googledns

 

만약 내 리눅스 서버의 /etc/hosts 파일에 123.456.0.10 dev-db-server라고 한 줄을 추가했다고 가정해 보자.

이제 터미널에서 ssh dev-db-serverping dev-db-server라고만 입력해도, 시스템은 자동으로 123.456.0.10을 찾아간다.

IP를 외울 필요가 없어지는 것이다.

 

💡 [참고] 운영체제별 hosts 파일 위치

이 개념은 모든 OS에서 동일하게 적용되지만, 파일의 경로는 조금씩 다르다.

  • Linux / macOS: /etc/hosts
  • Windows: C:\Windows\System32\drivers\etc\hosts