노는게 제일 좋습니다.

외부에서 홈서버에 접속할 수 있게 설정하기 본문

외부에서 홈서버에 접속할 수 있게 설정하기

노는게 제일 좋습니다. 2020. 8. 25. 00:28

목차

  • 배경과 문제
  • 포트 개방
  • 서버 기기 ip 고정할당
  • 포트 포워딩
  • 접속 테스트
  • DDNS설정

 

이 포스트 내용은 서버로 사용할 PC로 접속 하였을 때를 기준으로 작성되었습니다.

 

배경과 문제

공유기를 사용하는 컴퓨터에서 서버를 돌리고자 한다.

외부에서는 8080번 포트로 접속하도록 하고, 내부 서버의 80번포트로 연결되도록 하고싶다.

 

이 서버에 접근하기 위해서는 

1. 포트포워딩 혹은 DMZ설정이 필요하며

2. 외부에서 접근하도록 하려는 포트가 개방되어있어야 한다.

 

또, 다양한 변수가 있을 수 있는데 대표적으로는 두 가지이다.

1. 특정 인터넷 제공사는 특정 포트를 사용자가 쓸 수 없게 하기도 한다

2. 특정 인터넷의 기본 공유기(혹은 모뎀 겸용)는 포트포워딩이 안되거나, 아주 까다로운 설정이 필요한 경우도 있다.

 

일반적인 경우 인터넷회선 - 인터넷 모뎀 - 공유기 로 연결되어 있을 것이고, 개인 공유기에는 여러가지 기기가 물려있을 것이다.

외부 망과 공유기 안의 사설망을 1:1로 대응시켜주는 과정이 필요하다. 위 그림과 같은 과정을 어떻게 설정하는지 간단하게 정리했다. 

 

 

 

포트 개방


가장 먼저, 사용하고자 하는 포트가 개방되어있는지 확인한다. yougetsignal에서 간단하게 확인할 수 있다. 사진에서는 닫혀있다(closed)고 표시되고 있다. 이 경우 간단하게 포트를 개방할 수 있다.

 

iptables -I INPUT <규칙번호> -p tcp --dport <개방할 외부 포트번호> -j ACCEPT
(예시) iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT

위와 같은 커맨드를 터미널에 입력하면 되는데, <규칙번호>는 기존에 등록되지 않은 아무 숫자나 쓰면 된다. <개방할 외부 포트번호>는 말 그대로 외부에서 접속할 때 사용하고자 하는 포트번호를 입력하면 된다. 이 외의 자세한 내용은 여기를 참고하면 된다.

해당 커맨드로 포트를 개방한 뒤, 다시 yougetsignal에서 포트가 open되어있다고 나오는지 확인한다.

 

 

내부 기기 IP 고정할당


일반적으로 192.168.0.1로 접속하면 공유기 관리페이지를 이용할 수 있다. 이 관리페이지에서 왼쪽에 빨갛게 표시된 '내부 네트워크 설정''포트포워드 설정' 두 가지에서 간단한 설정만 해주면 모든 과정이 끝이 난다. 먼저, '내부 네트워크 설정'을 살펴보자.

 

  서버가 돌아가는 기기에 할당될 내부IP를 고정시켜주도록 하자. 기본적으로는 동적으로 남는 IP를 아무거나 주는데, 이 과정에서 서버 컴퓨터의 IP가 바뀌어 접속이 안될 우려가 있다. 그래서 예를 들자면 192.168.0.2 라는 IP는 오직 서버컴퓨터만 할당받을 수 있도록 하는 것이다. 

  iptime기준 가장 아래 [수동 ip 할당 설정]에서 왼쪽 사진과 같은 절차를 거치면, 오른쪽 사진처럼 '설정된 IP/MAC 주소'에 서버컴퓨터의 IP와 MAC이 나타날 것이다. 여기까지 왔다면 서버컴퓨터에 특정 IP가 고정적으로 할당되도록 설정을 마쳤다.

 

 

포트 포워딩


이제 외부ip의 포트와, 서버ip 포트를 임의로 1:1매칭 시켜주는 '포트 포워딩'만 남았다. 그냥 사진에서 나오듯 '규칙이름', '외부포트', '내부포트'(=서버 포트) 를 입력한 뒤, '현재 접속된 ip주소'에 체크해준뒤 '수정'을 누르면 목록에 추가된다. 

 

 

접속 테스트


이제 외부에서 우리 서버로 정상적으로 접속 가능한지 보면 된다.

예시로 든 경우에는 12.12.12.12:8080 으로 접속했을 때, 192.168.0.2:80 에 접속이 성공해야 한다.

 

 

공유기 자체 DDNS


  한 가지 문제가 있다. ISP에서는 우리에게 항상 동일한 IP주소를 할당해주지 않는다. 공유기 내부망 기본 설정이 그랬듯, 남는 IP중에서 아무거나 할당해준다. 즉, 외부IP가 변할 가능성이 있다는 것이다.

  원래대로라면 ISP에 연락해서 고급진 가격의 고정IP를 받아야겠지만, 공유기에서는 보통 DDNS라는 것을 제공한다. 외부IP가 12.12.12.12에서 갑자기 13.13.13.13으로 바뀌었다고 해보자. DDNS를 사용하지 않으면 서버관리자가 직접 사용자에게 연락을 돌려야 할 것이다. "그... 주소가 바뀌었습니다.. ㅠㅠ.. 바뀐 주소로 접속해주세요.."

  하지만 DDNS를 사용한다면, 사용자는 오직 wonjinyi.iptime.org와 같은 도메인만 알면 된다. ip가 바뀌면 공유기가 알아서 저 도메인에 바뀐 ip를 연결해준다.

 

iptime공유기의 DDNS설정은 '특수기능'에 들어있다.

 

각각 '<원하는글자>.iptime.org', '이메일', '아무 비밀번호'를 입력하고 [추가]버튼을 누른다.

 

그러면 위와 같이 접속상태가 바뀌다가, 정상등록으로 표시된다. 예시의 경우 wonjinyi.iptime.org:8080으로 접속하면 12.12.12.12:8080 으로 접속한 것과 같다. ip가 99.99.99.99:8080 으로 바뀌더라도 등록한 도메인인만 알고있다면 아무 문제 없다.

여기까지 왔다면 홈서버 접근을 위한 기본적인 설정은 모두 마쳤다. 

 

 


서버는 돈주고 사서 쓰는게 좋을 것 같다.

 

 

Comments