주뇽's 저장소

3. 포트포워딩을 이용하여 외부 접속 본문

IOT (Arduino)

3. 포트포워딩을 이용하여 외부 접속

뎁쭌 2023. 8. 5. 23:57
728x90
반응형

실시간 웹캠을 스트리밍 영상을 외부에서 확인

포트포워딩

가족들이 같이 사는 큰 집이 있다. 이 집은 "우리집"이라는 주소를 가지고 있으며, 집에는 여러 개의 방이 있다. 각 방에는 각기 다른 가족들이 살고 있다.

이때, "우리집"에는 우편함이 하나 뿐이고 모든 우편물은 이 우편함에 배달된다. 따라서 모든 가족들이 받은 우편물은 이 우편함에서 확인할 수 있다.

각 가족들은 서로의 우편물을 확인할 수 없으며, 각자의 우편물만 확인할 수 있다. 이런 상황에서 각 가족들이 자신들의 방에 배달되는 별도의 우편함이 있으면 어떨까?

포트 포워딩은 이와 비슷하다. 가족들이 각자의 방(기기)에서 필요한 데이터(우편물)을 받을 수 있도록 각자의 포트(우편함)를 갖게 해준다.

  • "우리집" 주소: 라우터의 공인 IP 주소
  • 방(가족들의 각 기기): 내부 기기들(컴퓨터, 스마트폰 등)
  • 우편함(포트 포워딩 설정): 각 기기들에게 특정 포트로 들어오는 데이터를 전달하는 역할을 한다.
  • 우편물(데이터): 외부에서 들어오는 데이터(인터넷에서의 요청 등)

포트 포워딩을 통해 가족들은 각자의 방(기기)에서 자신들만의 우편물(데이터)을 확인할 수 있게 되며, 각자 필요한 서비스를 동시에 이용할 수 있다. 이렇게 각기 다른 포트를 사용하여 데이터를 각 기기로 전달하면 더 많은 기기들이 서로 다른 서비스를 이용할 수 있다.

Step0. 자신의 공유기 관리자 접속

  • 자신의 IP 주소 확인
ifconfig | grep inet
  • 자신의 IP주소 맨 뒤 번호를 1로 바꾼 후 인터넷에서 IP주소 검색

    • ex) 192.168.0.63 ⇒ 192.168.0.1로 바꾸고 인터넷 주소창에서 검색

      1

#— 공유기마다 방법이 약간의 차이가 있으며 해당 글은 iptime을 기준으로 작성

Step1. DDNS 설정(선택)

선택사항이며 DDNS(동적 DNS)는 동적인 IP 주소를 가진 네트워크 기기를 동적으로 연결하고, 정적인 도메인 이름을 할당하여 쉽게 접근할 수 있게 해주는 서비스이다. 예를 들어, 가정에서 IP 주소가 동적으로 변경되는 라우터가 있다고 가정해보자 이 라우터에 CCTV가 연결되어 있다. 일반적인 IP 주소를 이용하여 CCTV에 접속하려면 IP 주소가 변경될 때마다 매번 새로운 IP 주소를 입력해야한다. 하지만 DDNS를 사용하면, 라우터와 CCTV의 동적인 IP 주소를 정적인 도메인 이름(예: mycctv.ddns.net)과 매핑하여, 도메인 이름만 입력하면 언제나 CCTV에 접속할 수 있게 된다.

  • 관리도구 클릭
2
  • DDNS 등록

    3
    • 호스트이름 : mycctv(자신이 원하는 정적 도메인 이름)
    • 사용자 ID : 이메일 주소
    • 보안 문자 : 우측 보안 문자
  • DDNS 등록 확인

    4
    • 위처럼 나오면 된다!

Step2. 포트포워딩 설정

  • 포트포워드 설정 접속
5
  • 외부 포트 ⇒ 내부 포트 설정

    6

    • 규칙이름 : 자신이 원하는 이름

    • 현재 접속된 IP 주소 체크

    • 외부 포트 : 외부에서 연결할 포트 8070 ~ 8080 으로 설정

    • 내부 포트 : 외부 포트를 내부 포트로 매핑 8080 ~ 8080

      —# 8070 ~ 8080 사이에 포트로 접속하면 모두 8080으로 매핑

Step3. 외부에서 접속

  • 플라스크 웹 서버 활성화

      python3 stream.py
  • DDNS를 이용하여 외부에서 접속

    • 같은 인터넷이 아닌 다른 인터넷에서 주소창에 자신이 설정한 DDNS:8080 으로 접속

      • ex) mytest.iptime.org:8080
      7

      잘 나온다!!

'IOT (Arduino)' 카테고리의 다른 글

Edge Computing 이란?  (0) 2023.09.05
2. 웹캠 스트리밍 with Flask  (2) 2023.08.04
1. 라즈베리파이 OpenCV 설치  (0) 2023.08.03