Linux 에서 네임 서비스 스위치(nsswitch; Name Service Switch) 설정
nsswitch.conf 란
웹 브라우저를 띄우고 google.com 에 연결하기 위해 주소를 입력하면 브라우저는 google.com 이라는 도메인 네임을 IP 로 변환한 후에 IP 주소로 연결하게 됩니다.
이때 운영체제에서 제공하는 DNS 를 IP 로 변환하는 함수인 gethostbyname 등을 호출하며 이 함수는 Name Service Switch configuration 설정 파일인 /etc/nsswitch.conf 파일의 hosts 항목을 참고하여 설정한 순서대로 DNS 변환 작업을 수행합니다.
배포판 종류나 버전에 따라 다르겠지만 hosts 항목을 보면 보통 다음과 같이 설정되어 있습니다.
$ cat /etc/nsswitch.conf | grep hosts hosts: files dns
의미는 좌측에서 우측의 순서대로 DNS 변환 작업을 하라는 지시자이며 우선 순위 높은 곳에 DNS 변환을 성공하면 우측 항목은 무시합니다.
여기서 맨 좌측의 files 는 /etc/hosts 파일을 의미하며 우선 순위는 hosts 파일을 찾고 없을 경우에만 DNS 에서 절의합니다.
즉 /etc/nsswitch.conf 가 위와 같이 설정되어 있다면 /etc/hosts 파일에 다음과 같이 설정할 경우 google.com 에 연결하면 늘 localhost 에 접속하게 됩니다.
127.0.0.1 google.com
만약 /etc/nsswitch.conf 가 다음과 같이 설정되어 있다면 /etc/hosts 파일에 google.com 이 설정되어 있어도 정상적으로 google.com 에 연결합니다.
hosts: dns files
Windows 도 c:\windows\system32\drivers\etc\hosts 에 설정한 도메인 정보를 우선적으로 적용합니다.
Unix, Windows 상관없이 hosts 파일의 포맷은 다음과 같이 IP 뒤에 공백을 주고 domain 이름을 적어주면 됩니다.다.
## comment 127.0.0.1 localhost localhost.localdomain
Name Server 수동 설정
Linux에 DNS(Domain Name Server) 설정 방법 을 참고하세요.
같이 보기
- Domain name 과 DNS(Domain Name Server)는 무엇이고 어떻게 동작하는가?
- CentOS nmcli 명령어로 정적 ip (Static IP) 설정하기
- nslookup 명령어 사용법 및 예제 정리
- Linux host 명령어 사용법 및 예제 정리