본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
호스트 이름과 IP 주소를 DNS 를 거치지 않고 직접 짝지어 두는 설정 파일
  • 경로 : /etc/hosts

DNS 가 보급되기 전에는 모든 호스트가 이 파일 하나로 이름을 해석했다. 지금도 이름 해석 순서에서 보통 DNS 보다 먼저 조회되므로, 내부 서버 이름을 등록하거나 특정 도메인을 다른 주소로 돌릴 때 쓴다.

한 줄에 하나씩 IP 주소, 정식 호스트명(FQDN), 별칭 순으로 적는다. 별칭은 생략하거나 여러 개 쓸 수 있다. # 뒤는 주석이다.

# cat /etc/hosts
127.0.0.1       localhost localhost.localdomain
::1             localhost localhost.localdomain
192.168.56.101  www.ihd.or.kr  www
192.168.12.22   nis.ihd.or.kr  nis

이 설정이면 ping www.ihd.or.kr 이나 ping www 가 DNS 질의 없이 192.168.56.101 로 간다.

이름 해석 순서

편집 원본 편집

/etc/nsswitch.conf 의 hosts: 항목이 순서를 정한다.

hosts:  files dns

files 가 /etc/hosts, dns 가 /etc/resolv.conf 에 적힌 DNS 서버다. 앞에 적힌 쪽을 먼저 보므로 hosts 에 등록된 이름은 DNS 응답보다 우선한다.

아파치 ServerName 경고

편집 원본 편집

아파치를 시작할 때 다음 메시지가 나오는 경우가 있다.

httpd: apr_sockaddr_info_get() failed for www
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

시스템의 호스트명(www)을 IP 주소로 해석하지 못해서 생기는 경고다. 해결 방법은 둘이다.

  • /etc/hosts 에 호스트명과 IP 를 등록한다. 예: 192.168.0.10 www.example.com www
  • httpd.conf 의 ServerName 지시자에 FQDN 을 직접 적는다.

다른 파일과의 구분

편집 원본 편집
파일 담는 내용
/etc/hosts 호스트명 ↔ IP 주소의 정적 매핑
/etc/resolv.conf 질의를 보낼 DNS 서버 주소와 검색 도메인
/etc/nsswitch.conf hosts·passwd 등을 어느 소스에서 어떤 순서로 찾을지
/etc/hostname 이 시스템 자신의 호스트명
/etc/sysconfig/network (레드햇 계열 구버전) 호스트명·게이트웨이·NIS 도메인 등 전역 네트워크 설정
/etc/sysconfig/network-scripts/ifcfg-* (레드햇 계열) 인터페이스별 IP 설정
  • 악성코드가 이 파일을 고쳐 은행·포털 도메인을 가짜 서버 IP 로 연결하는 파밍에 악용된다. 윈도우의 같은 파일은 C:\Windows\System32\drivers\etc\hosts 다.
  • 쓰기 권한은 root 에게만 두어야 한다(보통 644).