본문 바로가기

코딩공부/WEB2 - Domain Name System

[1] IP 주소와 hosts

IP address (Internet Protocol address) 

컴퓨터가 인터넷(네트워크)을 통해서 통신을 하기 위해서는 반드시 "IP 주소"를 가져야 한다.

 

두 대의 컴퓨터(서버-클라이언트)가 서로 통신할 때, 클라이언트는 웹브라우저에 서버의 ip 주소를 입력하여 접속할 수 있다.

서버는 응답하기 위해서 요청한 컴퓨터의 ip를 알아야 한다. 클라이언트가 정보를 요청할 때 자신의 주소를 담아서 보낸다.

Host

네트워크(인터넷)에 연결된 각각의 장치(컴퓨터)들을 host라고 한다.

hosts 파일

클라이언트가 서버의 ip 주소를 기억해서 매번 접속하기는 힘들다. ip주소에 도메인 네임을 설정해서 좀 더 쉽게 접속할 수 있다.

모든 운영체제에는 hosts라는 파일이 있다. hosts 파일에는 "www.examkple.com의 ip주소는 93.184.216.34이다."라는 정보를 저장해 두고, 사용자가 www.example.com이라고 접속했을 때, hosts 파일의 내용을 읽어서 컴퓨터는  93.184.216.34 로 접속하게 된다.

hosts 파일

 

hosts 파일을 이용해서 도메인 네임 시스템을 통하지 않고도 자주 사용하는 사이트나 자신만 사용하는 사이트의 도메인 주소 같은 호스트의 이름을 부여할 수 있다.

 

 


 

목표 : hosts 파일을 운영체제 별로 변경해서 도메인을 변경해보자

 

 

운영체제별 hosts 파일의 위치 검색

windows hosts file location

 

위키피디아에 잘 정리되어 있다.

hosts file location

 

> windows

SystemRoot는 C:\Windows 디렉토리이다. C:\Windows\System32\drivers\etc\hosts

hosts 파일은 중요한 파일이므로 관리자 권한이 필요하다. 편집 툴(메모장)을 우클릭> 관리자 권한으로 실행

 

> MAC

terminal에서 sudo nano /etc/hosts로 hosts 파일 편집 (vim 에디터 사용해도 됨. sudo 명령어 : 관리자 권한으로 명령 실행하겠다.)

 

파이썬으로 웹서버를 구동시킨 환경이다. 웹브라우저에서 172.30.1.4:8000 주소를 입력해서 웹서버에 접근할 수 있다.

내가 만든 웹사이트를 web1.com 도메인 네임으로 접속할 수 있도록 hosts 파일을 수정해보자

웹서버 구동 - 서버 ip,port 확인

 

실제로 web1.com 은 내 도메인이 아니지만 '이 컴퓨터 안에서'는 우선권이 DNS 시스템보다 높기 때문에, 사용자가 웹브라우저에서 web1.com 사이트로 접속을 요청하면 컴퓨터는 hosts 파일을 우선적으로 확인해서 내 서버 ip주소로 요청을 전달한다.

 

hosts 파일 수정

 

웹브라우저에서 web1.com:8000로 웹서버에 잘 접속되는 것을 확인할 수 있다.

 

※ hosts 파일에 port 설정 불가능

검색 결과

호스트 파일은 DNS 확인을 위한 것입니다. DNS는 이름을 IP 주소로 확인하며 두려워하는 포트와 아무 관련이 없습니다. 포트를 재 지정하려면 호스트 파일과 함께 다른 것을 사용해야 합니다 (대상 포트를 변경하여 TCP 헤더를 조정하십시오).

iptables 를 이용해야 한다.

sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -d 157.166.226.25 -j DNAT --to-destination 127.0.0.1:3000