Linux 시스템이 호스트 이름을 확인하기 위해 DNS 서버에 쿼리하기 전에, 먼저 로컬 머신에서 매핑을 확인합니다. 이 초기 확인은 이름 확인 프로세스의 기본 부분입니다.
/etc/hosts의 역할
이 로컬 조회를 위한 주요 파일은 /etc/hosts입니다. 이 간단한 텍스트 파일에는 호스트 이름과 IP 주소 간의 정적 매핑이 포함되어 있습니다. etc hosts 파일의 구조는 간단하며, 각 줄은 IP 주소, 정식 호스트 이름, 그리고 해당 호스트에 대한 선택적 별칭이라는 세 가지 필드로 구성됩니다.
다음은 일반적인 etc host linux 파일의 예입니다.
pete@icebox:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 icebox
거의 항상 기본적으로 localhost 주소가 매핑되어 있는 것을 볼 수 있습니다. 이 파일은 Debian hosts를 포함하여 대부분의 Linux 배포판에서 표준 기능입니다.
etc hosts linux 파일 편집
/etc/hosts 파일을 수동으로 편집하여 사용자 지정 매핑을 만들 수 있습니다. 재미있는 예제를 시도해 보겠습니다. 파일에 다음 줄을 추가합니다.
123.45.6.7 www.google.com
파일을 저장한 후 웹 브라우저에서 www.google.com으로 이동해 보세요. 작동하지 않는 것을 알게 될 것입니다. 이는 www.google.com을 잘못된 IP 주소에 매핑했기 때문입니다. 시스템이 로컬 /etc/hosts 파일을 먼저 확인하므로, 우리가 잘못 만든 매핑을 사용하고 올바른 주소를 찾기 위해 DNS 서버에 쿼리하는 단계로 넘어가지 않습니다. 이를 수정하려면 추가한 줄을 제거하기만 하면 됩니다.
이전 시스템에서는 접근 제어를 위해 /etc/hosts.deny와 /etc/hosts.allow를 사용했지만, 이 방법은 대부분 사용되지 않습니다. 최신 보안 관행은 강력한 보호를 위해 방화벽 규칙을 구성하는 데 의존합니다.
로컬 DNS 서버 구성
전통적으로 /etc/resolv.conf 파일은 조회를 위한 DNS 이름 서버를 지정하는 데 사용되었습니다. 그러나 시스템 관리의 발전으로 인해 이 파일은 수동으로 관리되지 않는 경우가 많습니다. 아래 예에서 볼 수 있듯이, 이 파일은 다른 서비스에 의해 자동으로 생성됩니다. DNS 이름 서버 매핑을 관리하려면 systemd-resolved 또는 resolvconf와 같은 도구가 현재 이를 처리하므로 특정 배포판의 설명서를 참조해야 합니다.
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search localdomain