OS/Linux

[Linux] /etc/hosts 파일

Ma_Sand 2023. 7. 29. 23:25
반응형

hosts 파일

컴퓨터가 도메인의 IP를 찾을 때 컴퓨터가 가장 먼저 조사하는 파일로, Linux에서 DNS보다 먼저 hostname을 IP로 찾아준다.

 

 

 

DNS 매핑 과정

IP 주소로 접속하기란 번잡하므로 사람이 외우기 쉬운 주소로 도메인을 사용한다.

tistory.com을 예로 들겠다. tistory.com을 입력했을 때 브라우저는 DNS 서버에 접속하여 tistory.com의 IP 주소를 찾는데, DNS 서버가 해당 IP를 알려주면 이에 접속해서 사이트를 띄운다.

 

이때, tistory.com을 입력했을 때 컴퓨터가 DNS 서버에 hosts 파일을 먼저 조사한 후 IP 주소를 찾는다. hosts 파일에서 해당 IP 주소를 찾는다면 DNS 서버는 더이상 그 도메인에 대해 묻지 않는다.

 

반응형

 

hosts 파일 구성

첫째 줄의 127.0.0.1은 서버 컴퓨터 자기 자신을 뜻하며 localhost로 지정되어 있다. localhost 외에 localhost.localdomain, localhost4, localhost4.localdomain4가 있는데 이들은 한 IP에 연결할 도메인을 띄어쓰기로 구분하여 연결해놓은 것이다.

 

두번째 줄의 ::1은 IPv6에서의 내 PC(localhost)를 가리킨다.

 

만약, hosts 파일을 수정했다면 네트워크 데몬을 재실행해야 한다.

$ /etc/init.d/networking restart

 

 

 

hosts 파일에 DNS 설정

1. hosts 파일을 vi로 열고 추가할 IP와 도메인명을 작성한다.

192.168.10.3 linux.dnsname.sand

 

 

2. ping으로 추가한 도메인명이 통신되는지 확인한다.

$ ping -c 4 linux.dnsname.sand

 

 

3. 웹에서 작동되는지 확인한다.

http://linux.dnsname.sand/

 

 

4. nslookup으로 확인한다.

$ nslookup linux.dnsname.sand

nslookup은 name server switch를 사용하지 않고 DNS만 사용하므로 'server can't find linux.dnsname.sand: NXDOMAIN'이라는 에러가 발생할 수 있다. 이땐 name server switch를 사용하는 ping, curl로 확인하면 된다.

 

 cf) /etc/nsswitch.conf : DNS를 IP로 변환하는 gethostbyname 함수 등을 호출해서 nsswitch.conf 파일의 hosts 항목을 참고하여 설정한 순서대로 DNS 변환 작업을 수행한다.

$ cat /etc/nsswitch.conf | grep hosts
hosts:      files dns

위와 같이 출력됐다면 files(hosts 파일)를 먼저 조사하고 없으면 dns를 거친다. hosts 파일에 '192.168.10.3 linux.dnsname.sand'로 설정돼있다면 linux.dnsname.sand에 연결했을 때 192.168.10.3로 접속된다.

 

hosts:      dns files

다음과 같이 출력된다면 정상적으로 linux.dnsname.sand에 연결된다.

반응형