라즈베리파이, 집에 놓고 다닐래!(외부 ip에서 내부 ip 접속하기)
무선랜카드가 없어서 라즈베리파이를 가지고 놀 수 있는 환경이 집밖에 안되었던 나는 외부 IP에서도 내부 IP로 접속할 수 있다는 것을 알았다. 우선 내 공유기가 쓰고있는 공인 IP 주소를 알아야 외부에서도 사용할 수 있다. (환경은 ipTIME 사의 공유기이다.)
내 공유기 설정창으로 접속하면 세가지 메뉴가 뜨는데 관리도구로 들어간다.(192.168.0.1) 여기서 외부 IP 주소를 통해 공인 IP 주소를 확인할 수 있다.
그런데 간혹 외부 IP 주소도 사설 IP가 뜰 수 있다. (사설 IP는 10.~, 172.~, 192.~으로 시작) 이러면 사실상 불가능하다고 생각하면 된다.
공인 IP가 떴다면 고급 설정→네트워크 관리→내부 네트워크 정보에서 나의 라즈베리파이 IP를 확인해보자.
보면 IP주소를 자동할당 받는 것을 알 수 있다. 생각보다 자주 바뀌진 않지만 그래도 IP를 고정시키자.
일단 라즈베리파이로 가서 내가 원하는 IP주소로 고정한다.
IP를 고정하기 전에 ifconfig 명령어를 통해 확인해보면 아까 확인했던 바와같이 나온다. IP를 고정하기 위해선 /etc/network/interfaces 파일을 수정하면 된다. (이때 루트권한으로 할 것)
나는 라즈베리파이에 랜선꽂아 사용하므로 eth0부분을 수정하였다. 라즈베리파이를 무선연결한 경우 wlan0부분을 수정하면 된다. iface eth0 inet static으로 고정시키고 address 옆 흰색으로 색칠한 부분에 자신이 고정시킬 IP주소를 입력하면 된다. (192.168.0.xxx)
재부팅한 후 다시 ifconfig를 통해 흰색 부분을 확인해보면 IP가 고정된 것을 확인할 수 있다.
이제 포트포워딩을 하면 된다. 포트포워딩이란 일종의 규칙을 정하는 것이라고 생각하면 된다. 라즈베리파이에 SSH로 접속하므로 내부에서는 22번 포트를 통해 접속을 하는데 내가 이 포트를 528이라 부르기로 약속하자. 그러면 외부에서 공인 IP의 528번 포트를 통해 접속을 한다는 것은 사실상 SSH(22)로 접속하는 것이다.
고급설정→NAT/라우터 관리→포트포워드 설정 으로 들어간다.
하늘색 부분에 아까 고정시킨 IP주소를 적고 외부 포트 검은색 부분에 내가 약속할 포트 번호를 설정한다. 내부 포트는 SSH로 접속하므로 22번으로 정한다. 그리고 추가시키면 된다. 그리고 putty나 xshell 등으로 공인 IP주소에 약속한 포트 번호로 접속하면 라즈베리파이 서버에 접속될 것이다.