이 글은 간단한 포트포워드로 외부 접속 가능한 공개 웹서버 인터넷 서비스 및 DNS 설정 방법을 정리한다.
본인이 개발한 프로그램을 인터넷으로 서비스하고 싶을 때가 있다. 이때, 인터넷 제공자로부터 비싼 고정IP를 설치하거나, 임시로 할당된 IP주소를 매번 입력하는 방식은 그리 편해 보이지 않는다. 이 경우, 집에 있는 공유기의 포트포워드(port forward) 를 이용해 공개 웹서버를 만들 수 있다.
공유기의 포트포워드 기능을 이용하면, 집에서도 서버를 쉽게 운영할 수 있다.
IP 정보 얻기
우선 아래 링크로 내 공개 IP를 얻는다.
그리고, 내부 네크워크 내 서버로 사용할 컴퓨터의 IP주소를 ifconfig 로 얻는다. 화면에서 inet 이 IP 주소이다.
공유기 포트 포워드 설정
이제 이 두개를 연결해줘서, 외부 공개 IP > 내부 IP 서버로 접속될 수 있게 포트 포워드를 설정한다. 이 과정은 공유기 종류별로 약간 다르나 메뉴는 거의 동일하다.
우선 아래와 같이 공유기 설정 주소를 입력하여, 로긴한 후, 포트 포워드 설정 메뉴를 선택한다.
다음과 같이 포트포워드할 내부 IP주소를 입력하고 설정한다.다음과 같이 DMZ를 설정한다.
방화벽 설정
접속하는 윈도우에서 방화벽 설정을 다음과 같이 진행한다.
제어판 > window 방화벽 > 고급설정 > 인바운드 규칙 클릭 > 새규칙 > 포트 클릭 > tcp, 특정 로컬 포트 예) 80, 5000 > 연결 허용 체크 > 도메인, 개인 공용 모두 체크 > 마침
우분투 서버에서는 다음과 같이 서버 포트를 허용해 준다.
sudo ufw allow 5000
서버 실행
다음과 같이 개발한 서버를 실행한다(웹서버 개발 방법 참고).
도메인 획득
이제 외부 공개 IP로 접속하면 서버가 외부에서도 연결될 것이다. 이제, 도메인을 설정해 특정 주소로 서버가 외부에 공개되도록 한다. 무료 DNS 서버를 이용해 이를 설정한다. 여기에서는 freenom을 이용한다. 이외에, 홈페이지 만들 때 Netlify, Streamlit share, Start Bootstrap 등도 유용하니 참고 바란다.
다음과 같이, 원하는 DNS 이름을 입력하고, 로그인 한 후, DNS를 구입하고, 해당 DNS에 앞의 서버 외부 공용 IP를 설정한다.
이제 DNS와 설정한 서버 공개 외부 IP가 네트워크를 통해 반영될 수 있도록 5~10분 정도 기다린다.
외부 DNS IP로 서버 접속
외부 DNS IP로 서버 접속해 본다. 결과는 다음과 같다. 테스트를 위해, 집 밖에서 노트북, 스마트폰을 이용해 촬영한 이미지를 개발한 웹서버로 업로드해 보았다.
외부에서 업로드한 이미지는 다음과 같이 서버에 잘 저장된다.
마무리
공유기의 포트포워드 기능을 이용하면, 집에서도 서버를 쉽게 운영할 수 있다.
부록: 웹 서비스 배포 및 무료 호스팅
- Deploy app servers close to your users · Fly
- Vercel: Build and deploy the best web experiences with the Frontend Cloud
- 클라우드타입 (cloudtype.io)
- 넉넉한 프리티어를 가진 Heroku 대체제들 | GeekNews (hada.io)
- Best Free Hosting for Django in 2023 | by Shivani | Medium
- 2020 Best Platforms That Provide Django App Hosting For FREE! (codecondo.com)
- Cloud Application Platform for Developers | Render
- 무료 풀 스택 호스팅을 위한 Heroku의 5가지 대안 – All Things N (atsit.in)
레퍼런스
댓글 없음:
댓글 쓰기