ESP8266 모듈에서 실행되는 웹서버를 외부 네트워크에서 접속하기위한 설정
테스트 환경
ipTIME 공유기
ESP8266 ( ESP-01 ) : 웹서버 기능
ESP8266 모듈은 WiFi 접속을 위한 모듈이므로 WiFi 네트워크에 접속하여 웹클라이언트나 웹서버의 기능을 할 수가 있다.
여기서는 ipTIME 공유기의 관리자 설정 페이지에서 다음과 같은 기능을 설정하여 ESP8266 모듈의 펌웨에에서 실행 중인 웹서버에 외부에서 접속이 가능하도록 설정하는 절차를 소개한다
참고로, 공유기를 외부 네트워크에서도 관리할 수 있도록 설정하는 [공유기 접속관리] 기능과 외부에서 공유기를 경유하여 내부의 특정 IP, Port에 접속할 수 있는 [포트포워딩] 기능은 서로 관련성이 없는 다른 기능이므로 오해하지 않도록 한다
이 테스트를 위해 사용된 ESP8266 펌웨어 코드는 여기 링크를 눌러 참조하세요
공유기의 WiFi 네트워크 이름, 암호 설정
공유기의 외부 IP를 xxx.iptime.org 무료 도메인에 등록한다
- 외부접속을 위해 반드시 필요한 절차는 아니며 공유기의 외부 IP는 암기가 어려우므로 도메인에 등록하면 약간 편리할 뿐이다
- 공유기의 외부 IP를 알면 외부에서 공유기 관리를 위한 접속이나 공유기를 경유하여 특정 컴퓨터(ESP8266 웹서버)에 접속할 수 있다
- 공유기의 외부 IP는 공유기 관리자 페이지에서 확인할 수 있다
공유기의 외부 IP 주소 확인
공유기 외부 IP를 무료 도메인(xxx.iptime.org)에 등록
공유기 관리자가 외부에서 공유기의 관리자 페이지에 접속가능하도록 설정한다
- 공유기 네트워크에 접속된 컴퓨터에서는 192.168.0.1 주소를 이용하면 공유기의 관리자 페이지에 접속할 수 있다
- 공유기 네트워크 외부에서는 공유기의 관리자 페이지에 접속할 수 없도록 디폴트로 설정되어 있다
- 공유기 네트워크 외부에서 공유기 관리자 페이지에 접속할 수 있도록 특정 컴퓨터의 IP 주소를 10개까지 등록할 수 있다
- 공유기의 외부에서 공유기 관리자 페이지에 접속하기 위해서는 공유기의 공인 IP를 확인해야 한다
- 공유기에 설정된 공인 IP를 암기하기 어렵다면 IPTIME 에서 제공하는 공인 도메인에 공유기 공인 IP를 등록해두면 된다
- IPTIME에서 무료로 제공하는 xxx.iptime.org 도메인은 1개의 메일 주소당(1인당) 한개만 제공한다.
- 예를 들어, 등록한 도메인이 test.iptime.org 라고 한다면 웹브라우저 주소창에 http://test.iptime.org 라고 입력하면 관리자 페이지에 접속된다
- 참고로, 공유기의 외부접속 설정과 포트포워딩 기능은 서로 관련성이 없다. 즉, 포트포워드를 위해 공유기 외부접속을 설정할 필요는 없다
포트포워드 기능 설정
일반 웹클라이언트가 외부에서 ipTIME 공유기를 경유하여 공유기 내부 네트워크 상의 특정 컴퓨터(ESP8266 웹서버)에 접속가능하게 설정한다
- ipTIME 관리자 페이지의 포트포워딩 기능을 이용하면 된다
- 설정 후 관리자 페이지 우측 상단의 [저장], [다시] 버튼을 눌러야만 설정사항이 반영된다는 것을 잊지말자
- 공유기의 IP 주소나 도메인을 웹브라우저 주소창에 입력하고 이어서 포트포워딩 설정에 등록한 포트번호를 입력하고 그외의 웹경로를 입력하면 된다
- 예를 들어, http://test.iptime.org:8888/gpio/1 과 같이 입력하면 외부에서 공유기에 접속되고 공유기는 포트포워딩 설정시 사용한 8888 번포트에 연결된 내부 IP와 포트번호로 변경하여 해당 컴퓨터의 웹서버에 요청을 전달한다
외부에서 공유기에 접속하는 예 (도메인 대신 공유기 외부 IP주소를 사용해도 된다)
http://test.iptime.org -> 공유기 관리자 로그인 페이지에 접속된다 (공유기 접속관리 메뉴에서 설정을 한 경우에만 접속가능)
http://test.iptime.org:8888/gpio/1 -> 공유기를 경유하여 포트포워딩 설정된 내부 네트워크 상의 특정 컴퓨터에 접속된다(웹서버 등)
위와같이 설정하여 아래처럼 ESP8266 모듈의 펌웨어에서 실행되는 웹서버에 접속이 가능했다
테스트를 위해 사용한 ESP8266 펌웨어 코드는 여기 링크를 눌러 참조하세요