Posts Raspberry Pi Port Forward - 라즈베리파이 외부/해외에서 접속하기 (포트포워드)
Post
Cancel

Raspberry Pi Port Forward - 라즈베리파이 외부/해외에서 접속하기 (포트포워드)

pi

FlyingDeuk's

이제는 라즈베리파이를 집안에서 집밖으로 해외로 나가게 해줘야 한다.
서버란 집 밖에서 접속하고 사용해야하니…
공유기(IPTIME)의 포트포워딩을 통해서 가능하다.

Wiki's

포트 포워딩(영어: port forwarding) 또는 포트 매핑(영어: port mapping)은 컴퓨터 네트워크에서 패킷이 라우터나 방화벽과 같은 네트워크 게이트웨이를 가로지르는 동안 하나의 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환(NAT)의 응용이다. 이 기법은 게이트웨이(외부망)의 반대쪽에 위치한 보호/내부망에 상주하는 호스트에 대한 서비스를 생성하기 위해 흔히 사용되며, 통신하는 목적지 IP 주소와 포트 번호를 내부 호스트에 다시 매핑함으로써 이루어진다.[1][2]

공유기 외부접속 설정하기 - IPTIME 공유기

일단은 가정에서 손쉽게 사용하는 공유기 설정이 먼저다.

IPTIME 공유기 DDNS - 외부/해외에서 접속하는 법

IPTIME 공유기 기능에 대한 포스팅을 참조하면 된다.

위 포스팅을 기준으로 내 DDNS 주소는 deuktest.iptime.org 가 된다.

공유기 포트포워딩 설정하기 - IPTIME 공유기

BackGround

외부에서 내 공유기를 들어오기 위한 주소는 공유기에서 제공하는 deuktest.iptime.org이다. 그런데 이 주소하나로 공유기까지는 접근한다고 해도 가정내부의 기기에 접근을 위해서는 추가적인 정보가 필요하게 된다. 그 연결 추가의 방법이 바로 포트(port)이다 예를 들어

  • deuktest.iptime.org:1234 -> 공유기 자체 설정
  • deuktest.iptime.org:123 -> 라즈베리파이 1번
  • deuktest.iptime.org:456 -> 라즈베리파이 2번

    이런 식으로 여러 기기를 포트 번호를 통해서 추가 주소로 사용할 수 있는 것이다.

일반적인 포트 번호

포트 번호는 크게 세 종류로 구분된다.

  • 0번 ~ 1023번: 잘 알려진 포트 (well-known port)
  • 1024번 ~ 49151번: 등록된 포트 (registered port)
  • 49152번 ~ 65535번: 동적 포트 (dynamic port)

잘 알려진 포트 번호의 대표적 예는 다음과 같다.

20 : FTP(data)
21 : FTP(제어)
22 : SSH
23 : 텔넷
53 : DNS
80 : 월드 와이드 웹 HTTP
119 : NNTP
443 : TLS/SSL 방식의 HTTP

포트 선정

포트번호는 보안을 위해서 왜곡을 하는 게 좋다. 본인이 사용하는 포트가 일반적인 포트번호에 겹치치않게 바꿔서 사용하는 것이 추천된다.

  • 외부포트 : DDNS 주소에 붙여사용하는 포트로 접속마다 귀찮지만 본인만의 포트를 선정하는 것이 좋다.

    FTP : ftp://deuktest.iptime.org:12345 (포트를 붙여 접속)
    SSH : ssh pi@deuktest.iptime.org -p 12345 (-p 로 포트를 붙여 접속)

  • 내부포트 : 예를 들어 ftp는 21이 기본포트이다. 내부포트 변경을 위해서는 ftp 설정에서 변경해주면 역시 2차 왜곡이 가능하다.

포트포워드 설정 - IPTIME 공유기

공유기 설정 진입은 생략한다. IPTIME 공유기 설정 포스팅 참조

port

고급 설정 -> NAT/라우터 관리 -> 포트포워드 설정

  • 규칙 이름 : 본인이 식별가능한 이름
  • 내부 IP주소 : DHCP 설정한 내부 라즈베리파이 IP 주소를 지정한다.
  • 포로토콜 : 통신 규약을 정한다. 초보라 잘 모르지만 TCP/UDP 둘다 설정했다.

    TCP : 통신상태에 따라 누락이 없이 일일이 확인 전송하는 방식 (데이터의 정확성이 중요한 경우)
    UDP : 데이터 누락보다는 지속적인 전송이 중요한 경우 (예를 들면 동영상같은 데이터…)

  • 외부포트 : DDNS에 붙여 외부에서 접속시 필요한 포트
  • 내부포트 : ftp, vnc, ssh등 정해진 포트를 설정에서 변경한 포트

    포트에 범위가 지정되어 있으나 크게 쓸일은 없을 듯…

외부 접속 예

DDNS에 포트번호를 붙이거나 어플의 포트란에 해당 포트를 적어주면 됨.

ftp

ftp://deuktest.iptime.org:12345

포트를 붙여서 접속

ssh

$ ssh pi@deuktest.iptime.org -p 67890

-p : 포트 지정 해줄때 사용한다.

VNC

포트만 열어주고 Viewr APP에 설정해주면 외부에서 접속이 가능하다.

외부(임의의) 포트 -> 내부(VNC설정) 포트 (보안을 위한 포트 변경은 필수다.)


PostScript

인터넷에 검색해보면 현업에 종사하는 사람부터 취미로 거의 전문가적인 사람들의 블로그가 정말 많다….
궁금증으로 찾아보고 고민해본 아마추어적인 블로그임을 다시 한번 밝히고 싶다… 초보다…


< Back to Raspberry Pi >

This post is licensed under CC BY 4.0 by the author.

Raspberry Pi User - 라즈베리파이 pi 이름 변경법

Raspberry Pi sudo - 라즈베리파이 sudo 암호입력 없이 사용하기

Comments powered by Disqus.