ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [포트포워딩] 라즈베리파이 외부접속하기
    CS/Server 2020. 10. 24. 17:23

    안녕하세요, 오늘 다를 주제는 라즈베리 파이에 관한 주제입니다.

     

    요즘 사이드프로젝트로 웹 사이트를 하나 만들고 있던 와중에 방 정리를 하는데 예전에 구매해두었던 라즈베리 파이를 발견했습니다!

    그 때 이번에 만드는 사이트는 이 라즈베리파이를 서버로 구동해보면 재밌겠다 라는 생각을 했습니다.

     

    저는 평소에 주로 카페에서 공부를 하는데 문제는 라즈베리 파이를 들고다니기엔 번거롭다는 거였습니다.

    그래서 포트포워딩을 통해 집에 연결해놓은 라즈베리파이를 외부에서 접속하는 방법에 대해 알아보고 포스팅 해보도록 하겠습니다.

     

    1. 같은 네트워크에서 접속하기

    우선 기본적으로 라즈베리파이와 같은 네트워크에 연결되어 있을 때는 단순 아이피 주소와 ssh 를 사용하여 접속할 수 있습니다.

    ifconfig 를 사용하여 라즈베리 파이의 내부 ip 주소를 알 수 있습니다.

    그러면 inet 이라고 적혀있는 뒷부분에 IPv4 아이피 주소가 192.168.xx.xx 이런식으로 적혀있을 거에요. 이 주소를 터미널을 여시고

    ssh pi@192.168.xx.xx

    이렇게 입력하면 라즈베리 파이에 접속할 수 있습니다.

    (저는 맥북을 사용하며 이 포스트는 MacOS 기준으로 맞추어져 있습니다. 윈도우의 경우 putty 를 이용해서 접속할 수 있습니다.)

    pi 는 라즈베리파이의 기본 userID 이고 @ 뒤에는 라즈베리파이에 할당된 아이피 주소를 적어주면 됩니다.

     

     

    2. 공인IP && 사설IP

    위에 ifconfig 에서 얻은 ip 정보는 사설ip 로 외부에서 여기에 접속하기 위해서는 공인ip 를 통한 접속이 필요합니다.

    여기서 공인ip, 사설ip 에 관해 간단히 설명하자면

    공인IP (Public IP) 란 ISP 가 제공하는 전 세계에서 유일하며 외부에 공개되어 있는 IP 주소입니다.

    사설IP (Private IP) 란 일반 가정이나 회사 등에서 하나의 공인IP 안에서 공유기 등의 라우터를 통해 할당되는 IP 주소입니다.

    즉 하나의 공인IP 안에서 다시 여러 개의 사설IP 가 존재하여 공인IP 만으로 여러 IP 를 사용할 수 있도록 한 것이고, 이는 IPv4 의 주소부족으로 인해 고안된 것입니다.

    주로 가정에서 사용하는 사설 IP 는 192.168.xx.xx(class C) 로 시작이 고정되어 있습니다.

     

    3. 외부에서 라즈베리파이 접속하기

    위의 공인IP, 사설IP 의 문제로 1번에서 확인한 192.168.xx.xx 의 주소로 외부에서 접속한다고 하면 내가 원하는 라즈베리파이가 아닌 다른 곳으로 연결을 시도할 것입니다. 이는 포트포워딩이라는 과정을 통해 해결할 수 있습니다.

    포트포워딩이란 하나의 IP 와 포트번호가 결합된 요청을 다른곳으로 넘겨주는 네트워크 주소 변환의 일종입니다. 이를 사용하여 공유기의 공인IP 와 설정해준 임의의 포트번호의 결합을 내부의 라즈베리파이의 사설IP 로 보내주도록 포트포워딩 설정을 해 주면 외부에서 라즈베리파이에 접속할 수 있게 됩니다. 

     

    우선 공유기에서 포트포워딩 설정을 하기 위해서 공유기 관리자 설정에 접속을 해야 합니다.

    라즈베리 파이에서 ip route 명령어를 입력하면 라우터 정보가 나옵니다.

    제 경우에는 iptime 공유기를 사용하고 있고 default via 뒤에 있는 192.168.0.1 주소를 인터넷에 주소창에 입력하면 iptime 공유기 관리자 창에 접속할 수 있습니다. (혹은 인터넷 검색을 통해 iptime 관리자 ip 등으로 검색하시면 sk, kt, lg, iptime 등 공유기에 맞는 관리자 접속 주소를 알 수 있습니다.)

     

    관리자 페이지에 접속하시면 아이디와 비밀번호를 치도록 나와있는데, iptime 의 경우에는 기본 id : admin, 비밀번호 : admin 으로 설정되어 있고 이를 통해 들어가신 후 아이디, 비밀번호를 재설정 할 수 있습니다. skt 공유기의 경우는 기본 id : admin, 비밀번호 : 유선MAC 번호 뒤 6자리_admin 으로 알고 있는데 유선MAC 번호는 공유기 아래부분에 붙어 있는 스티커에 적혀 있습니다. 공유기 기본 id, password 는 검색을 통하여 알 수 있으니 찾아서 들어가시면 됩니다.

     

    로그인을 하신 후 '관리도구' 메뉴에 들어오시면 공유기 정보가 보이고, 가장 처음 화면(시스템 요약 정보) 화면에 인터넷정보->외부IP주소 라고 나와있는데 이 주소가 외부에서 공유기로 접속할 수 있는 공인IP 주소이고, 기억해두시면 됩니다.

     

    그 후 포트포워딩 메뉴는 고급설정->NAT/라우터 관리->포트포워드 설정 에 있는데 iptime 외에 다른 공유기들도 비슷한 이름으로 되어 있을 거에요!

    이 메뉴에 접속한 뒤

    이와 같은 입력창이 있는데 여기에 정보를 입력해주시면 됩니다.

    규칙이름에는 이 규칙을 식별할 수 있도록 임의의 이름을 입력해주시면 되고, 내부 IP 주소에는 아까 라즈베리 파이에서 ifconfig 해서 얻은 주소를 입력해주시면 됩니다. 제 경우에는 192.168.0.14네요.

    외부 포트는 아까 말씀드렸던 공인IP + 포트 조합에서 포트 부분에 해당하는 것이고 임의의 포트를 선택해주시면 됩니다. 제 경우에는 8000 번으로 설정했고, 내부 포트는 라즈베리파이에 접속하는 포트를 말하는데 저는 ssh 를 이용하여 라즈베리 파이에 접속할 것이어서 22를 입력해줬습니다. 참고로 ssh 접속 기본 포트가 22번이에요!

     

    설정을 완료해 준 후 '추가' 를 누른 후 맨 위 오른쪽에 있는 '저장' 도 꼭 눌러주셔야 합니다. 이렇게 완료가 되면 이제 외부에서 공인IP 와 포트 8000번으로 라즈베리 파이에 ssh 연결을 할 수 있습니다.

     

    연결하는 방법은 내부에서 접속하는 거와 비슷한데, 포트 번호를 설정해 주는 방법은

    ssh pi@xxx.xxx.xxx.xxx -p [포트번호]

    이런 식으로 -p 옵션을 주면 됩니다. xxx.xxx.xxx.xxx 부분에는 아까 공유기 설정에서 기억해두라고 했던 외부IP주소 를 입력하시면 되고 [v포트번호] 는 포트포워드 규칙을 추가할 때 설정해준 외부포트를 적으시면 됩니다.

    4. 공유기를 2중으로 사용하는 경우

    이 경우는 흔하지 않은데, 저같은 경우에 집에는 skt 공유기로 인터넷을 사용하고 제 방에 이 skt 공유기에서 연결한 iptime 공유기를 하나 더 연결해서 사용하고 있습니다. 라즈베리파이는 이 iptime 공유기에 연결되어 있구요.

     

    저는 그래서 외부에서 라즈베리파이에 접속을 하기 위해서는 포트포워딩을 두 번 해 주었는데요, 우선 skt 공유기의 관리자 설정에서 하나의 포트포워딩 규칙을 만들어서 iptime 공유기의 주소로 접속할 수 있게 해주었습니다. 이 경우에 skt 공유기 설정에서 규칙에 추가해주는 내부IP주소가 iptime 공유기에서 확인한 외부IP주소가 됩니다. 외부 포트는 임의로 주고, 이 경우에는 내부 포트 번호도 임의로 설정해 주었습니다. 이 내부포트가 iptime 의 공유기에 접근하는 입장에서는 외부 포트번호가 되겠죠!

     

    임의의 포트를 주고 규칙을 저장한 후에 이번에는 iptime 의 공유기 설정에서 새로운 포트포워드 규칙을 만들고 내부 ip 주소는 라즈베리파이의 주소, 외부포트는 skt 공유기의 포트포워드 규칙에서 입력해준 내부포트 번호를 넣고, 내부 포트는 22로 두었습니다.

     

    접속할 때는 아까와 동일하게

    ssh pi@xxx.xxx.xxx.xxx -p [포트번호]

    이 때, 주의할 점은 xxx.xxx.xxx.xxx 부분은 제일 상위의 공유기 외부ip주소, 즉 제 입장에서는 skt 공유기에서 확인한 외부ip주소를 넣어주어야 하고, 포트번호도 해당 공유기에서 포트포워딩 규칙에 넣어준 외부포트 번호를 넣어주어야 합니다.

    연결에 성공하면 위와 같은 메세지가 뜨고, 라즈베리파이에 접속이 됩니다 :)

    'CS > Server' 카테고리의 다른 글

    [웹서버] 라즈베리파이로 홈 서버 만들기  (0) 2020.10.30

    댓글 1

Designed by Tistory.