linux hosts 파일 위치와 로컬 도메인 설정

hosts 파일의 위치

리눅스에서 hosts 파일은 /etc 디렉토리 안에 위치합니다. 텍스트 파일이

므로 /etc/hosts 파일을 텍스트 편집기에서 열면 기본 구성은 다음과 같습니다.

127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

IPv6는 로컬 도메인을 구성하는데 사용하지 않으므로 IPv4만 사용합니다. 맨 위에 있는 127.0.0.1 localhost 처럼 IP주소 뒤에 공백을 띄우고 호스트이름, 또는 도메인을 입력하면 됩니다.

첫 행 밑에 규칙에 맞춰 새로운 호스트, 또는 도메인을 등록하면 됩니다.

hosts 파일 편집

맨 앞의 "#"을 입력하면 해당 행은 주석으로 처리됩니다. 맨 앞에 "#" 표시가 된 행은 모두 무시됩니다.

작성 방식은 간단합니다. 다음처럼 IP 뒤에 공백/탭으로 구분한 후 호스트, 또는 도메인을 행 단위로 작성하면 됩니다.

IP    호스트/또는도메인

예를 들어 다음처럼 작성합니다.

127.0.0.1        blog
192.168.0.46     apost.dev
127.0.0.1        mydomain1.com
127.0.0.1        google.com

hosts 파일이 네트워크에 설정한 네임서버보다 우선 순위가 있기 때문에 hosts 파일에 앞서처럼 "google.com" 도메인을 로컬 호스트로 설정하면 웹 브라우저로 google.com 사이트에 접속할 때 실제 구글 검색 사이트가 아닌 내 로컬 컴퓨터의 웹 서버에 접속(http://127.0.0.1)을 시도하게 됩니다.

hosts 파일의 작성 규칙은 다음과 같습니다.

  • localhost 는 별도로 hosts 파일에 설정하지 않아도 동작합니다. 내장된 호스트이름입니다.
  • 호스트이름, 또는 풀 도메인 이름을 모두 사용할 수 있습니다.
  • 퍼블릭 도메인이 없는 공인 IPv4에 원하는 사설도메인을 매핑할 수 있습니다. 공인IP를 가진 서버, 또는 사설망 안에 있는 컴퓨터에 원하는 아무 도메인이나 연결할 수 있습니다. 물론 hosts에 설정한 도메인으로의 접근은 내 컴퓨터에서만 가능합니다.
  • 퍼블릭 도메인을 127.0.0.1로 매핑하면 퍼블릭 도메인으로 연결시 로컬호스트로 연결합니다. 특정 도메인 접근을 로컬호스트로 연결되도록 강제할 때 사용할 수 있습니다.

hosts 파일에 다음처럼 로컬호스트 IP를 domain1.com 도메인으로 설정하면 웹 브라우저에서 domain1.com을 입력하면 내 로컬호스트의 80포트, 또는 443포트를 통합 웹 연결을 시도하게 됩니다.

127.0.0.1    domain1.com

"domain1.com" 도메인은 실제로 등록되지 않은 도메인이어도 상관없습니다.

hosts 변경 사항 적용

hosts 파일을 수정한 뒤에는 네트워크 데몬이 hosts 파일의 변경 사항을 다시 읽도록 네트워크 데몬을 재 실행해야 합니다.

네트워크 데몬을 재 실행 하려면 네트워크 매니저를 먼저 설치해서 관리 커맨드를 사용 가능하게 해야 합니다.

sudo apt install network-manager

설치 후 네트워크 매니저를 재 실행해서 hosts 파일을 다시 읽어들입니다. 대소문자를 구분하므로 "NetworkManager" 이름 입력시 주의해야 합니다.

sudo systemctl restart NetworkManager