리눅스 hosts
IT 위키
더 많은 작업
- 호스트 이름과 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 응답보다 우선한다.
아파치를 시작할 때 다음 메시지가 나오는 경우가 있다.
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).