Hosts 파일 도메인 여러개 - Hosts pail domein yeoleogae

hosts를 이용한 호스트 리매핑

Hosts 파일 도메인 여러개 - Hosts pail domein yeoleogae

지난번 IP주소와 도메인의 관계에 대한 포스팅에서 이어지는 내용입니다.

웹 브라우저는 주소창으로 입력받은 인터넷 도메인의 실제 IP주소를 아래에 나열한 우선 순위를 바탕으로 검색을 합니다.

1. local cache에서 해당 도메인을 검색 2. hosts 파일에서 해당 도메인을 검색 3. Domain Name System에서 해당 도메인을 검색

먼저, 한 번이라도 접속한 적이 없는 웹 사이트라면, DNS를 통해 해당 도메인의 실제 IP주소를 찾아내어 접속합니다. 그러나 이미 한 번 이상 접속한 웹사이트라면, Local Cache에 남아있을 가능성이 높습니다. 만약 로컬 캐시에 없다면, hosts 파일을 참조 합니다.

hosts 파일을 열어보면, IP주소와 도메인 문자열이 짝을 이루어 입력되어 있습니다. 127.0.0.1이 localshot로 짝을 이루고 있지요?

## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost

hosts 파일의 내용을 보면, 오른쪽의 호스트 이름을 왼쪽의 실제 IP주소로 연결합니다. 이것을 호스트 리매핑(Host Remapping)이라고 합니다. 더 자세한 내용은 아래 위키 백과의 내용을 참고 하세요.

hosts 파일을 어떤 상황에 사용할 수 있을까요?

웹 프로젝트를 진행할때, 도메인 주소를 개발중인 서버와 연결해서 테스트 할 경우에 사용할 수 있습니다. 또는 자녀나 직원이 불필요한 사이트에 접속하는 것을 방지할 수도 있겠지요. 예를 들어 도메인 Sample.com에 접근하는 것을 차단해볼까요?

맥OS에서 hosts 파일은 /etc/hosts에 위치하고 있습니다. 파일의 확장자는 없지만, 텍스트 편집기를 통해 내용을 수정할 수 있구요. 다만, 네트워크 시스템 환경을 변경하는 작업이라 관리자 권한이 필요합니다. 맥OS의 시스템 콘솔인 터미널에서 hosts 파일을 수정하기 위해서는 sudo 명령어를 함께 사용합니다.

시스템 콘솔의 텍스트 편집기인 vim으로 hosts 파일을 열면, i를 눌러서 INSERT 모드로 변경합니다. 맨 아래줄로 이동한 뒤에 127.0.0.1 sample.com을 입력합니다. IP주소와 도메인 문자 사이는 Tab으로 띄어쓰기를 합니다.

## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 127.0.0.1 sample.com

ESC키를 눌러서 메뉴 모드로 돌아가고, :wq를 입력하면, 저장한 뒤에 종료합니다.

웹 브라우저를 실행하고, sample.com에 접속을 하면, localhost로 이동되면서, 실제 sample.com에 접속할 수 없게 됩니다. 만약 변경된 설정이 시스템에 적용되지 않았다면, 재부팅을 합니다. 만약 시스템에 즉시 반영하고 싶다면, 아래 명령어를 통해 즉시 반영할 수 있습니다.

만약 맥OS가 아닌 리눅스라면 아래와 같이 입력합니다.

sudo /etc/init.d/networking restart

참고로 로컬 캐시를 초기화하는 명령어는 아래와 같습니다.

sudo killall -HUP mDNSResponder

Hosts 파일 도메인 여러개 - Hosts pail domein yeoleogae

웹서버를 도메인 없이 테스트하거나 윈도우 서버의 각종 서비스를 테스트 할때 도메인이 없으면 불편한 경우가 생기는데요. 이렇게 도메인을 임의적으로 연결하고 싶을때 윈도우 호스트 파일 수정으로 도메인과 IP를 연결할수 있습니다.

hosts 파일의 역할은 운영체제가 도메인과 IP를 연결할때 사용하는 파일로 윈도우 뿐만 아니라 리눅스/유닉스 계열 역시 마찬가지로 hosts 이름을 사용합니다.

DNS 서버가 네트워크 레벨에서 도메인과 IP를 맵핑하는 것이라면 hosts 파일은 운영체제 자체에서 도메인과 IP를 매핑하게 됩니다.

hosts 역할 때문에 악성코드등으로 호스트 파일이 사용자의 의지와는 상관없이 수정, 위변조되어 이상한 사이트로 연결되는 문제가 생길때도 호스트 파일을 확인해서 복원할수 있습니다.

윈도우10 Hosts 파일 수정으로 도메인과 IP 연결하기

Hosts 파일 도메인 여러개 - Hosts pail domein yeoleogae

윈도우10 기준으로 시작 버튼을 클릭한 다음 Windows 보조 프로그램의 메모장을 오른쪽 버튼으로 클릭해서 관리자 권한으로 실행합니다.

Hosts 파일 도메인 여러개 - Hosts pail domein yeoleogae

C:\Windows\System32\drivers\etc

메모장에서 위의 경로로 이동한 다음 모든 파일(*.*)을 선택해서 hosts 파일을 불러옵니다.

Hosts 파일 도메인 여러개 - Hosts pail domein yeoleogae

호스트 파일을 수정합니다. 이때 위와 같이 내부 아이피나 외부 아이피 한칸 띄고 도메인을 입력하면 해당 아이피가 도메인과 맵핑되는데 위를 예로 들어 naver.com 에 접속하면 192.168.100.2의 서버에 연결되게 됩니다.

만일 hosts 파일에 자신이 입력한 아이피와 도메인이 아닌 다른 정보가 입력되어 있다면 hosts 파일 위변조가 된 경우로 바이러스나 애드웨어, 멀웨어등이 설치되어 있는지 백신으로 검사하는 것이 좋습니다.

hosts 파일 수정을 한 다음 저장을 하면 호스트 파일 수정 끝입니다.

hosts 파일은 도메인의 IP를 찾을 때 컴퓨터가 맨 처음 조사하는 파일이다(그러니깐 DNS 파일인 것이다).

로컬에서 개발을 진행할 때 로컬에서만 사용할 도메인과 IP주소를 연결해 줘야 하는데, 이 때 리눅스와 맥은 /etc/hosts 파일에, 윈도우는 C:\Windows\System32\Drivers\etc\hosts 파일에 내용을 작성해 준다. 내용은 아래와 같다.

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost MytoryMP.local
255.255.255.255 broadcasthost
::1             localhost
127.0.0.1       video.localhost

위 내용을 보면 맨 마지막 줄에 video.localhost라는 도메인이 127.0.0.1에 연결돼 있는 것을 볼 수 있다.

127.0.0.1은 서버 컴퓨터 자신을 가리키는 IP 주소다. video.localhost는 내가 로컬에서 개발하는 사이트고, IP주소를 내 컴퓨터로 설정해 둔 것이다. video.localhost라는 도메인은 내 컴퓨터 외에는 어디에도 없는 도메인이기 때문에 여기 적어 주지 않으면 컴퓨터가 도메인의 IP주소를 찾지 못한다.

localhost가 기본적으로 127.0.0.1에 연결돼 있어서 video.localhost처럼 localhost의 서브도메인을 사용하면 지정해 주지 않아도 알아서 찾는 경우도 있는데, 그래도 부작용이 나타나는 경우가 있으니 꼭 써 주자.

팁1: 주석 뒤 첫 줄을 보면 127.0.0.1 localhost MytoryMP.local이라고 씌어 있다. 127.0.0.1localhostMytoryMP.local이라는 두 도메인을 연결한 것이다. 즉, IP에 연결할 도메인은 띄어쓰기로 구분해서 여러 개 쓸 수 있다.

팁2: 주석 뒤 셋째 줄을 보면 ::1 localhost이라고 돼 있다. ::1은 ipv6에서 내 컴퓨터를 가리키는 IP주소다. ipv6에 대해서는 위키피디아를 참고하라.