ssh 터널링을 이용하면 된다고 해서 포트포워딩 및 DDNS 설정과 조합해서 설명해 보려고 합니다. 대략 순서는 아래와 같아요.
- DDNS를 설정한다 : 외부에서 IP 대신에 접속 가능한 도메인을 생성
- 포트포워딩을 설정한다 : 외부에서 내부 네트워크로 접속 가능하도록 생성
- ssh 접속 시 DDNS와 포워딩된 포트를 이용해서 외부에서 원격으로 연결
진짜 필요한 건 3번 한줄이지만 이걸 하기 위해서 1번과 2번을 설정할 필요가 있습니다.
전제조건 : IPTIME 공유기를 사용하기
제가 설명할 내용의 전제는 IPTIME 공유기를 사용하는 겁니다. 저는 집에 인터넷은 kt를 사용하는데, 어디를 쓰건 간에 통신사에서 기본적으로 제공하는 공유기는 포트포워딩도 잘 제공 안하고 DDNS는 더더욱 제공을 안합니다. 하지만 대부분의 IPTIME 공유기는 이 기능들을 제공하니 가능하면 IPTIME것으로 진행하시죠. 너무 싼 거 말고 적당히 가성비 있는 것으로 사는 게 좋을 거 같습니다. 괜히 또 지원 안하면 안되니까요.
DDNS 설정하기
앞서 말씀드린 대로 DDNS는 외부에서 IP 대신에 도메인으로 접속할 수 있도록 도와주는 기능입니다. 아래의 차례대로 수행합니다.
- 192.168.0.1 로 접속 : IPTIME공유기 관리자 페이지입니다.
- 로그인 후 "관리도구"로 접속
- 고급 설정 > 특수기능 > DDNS 설정 메뉴로 들어갑니다.
- 호스트 이름에 원하는 이름을 적습니다. 예시 : asdf.iptime.org
- ID는 메일 주소로 적습니다.
- "등록" 버튼을 누릅니다.
정상적으로 완료되고 나면, 잠시 후에 "정상 등록" 이라는 멘트가 나올 겁니다. 아직까지는 아무것도 할 수 있는 게 없을 거예요. 다음 단계로 넘어가겠습니다.
포트포워드 설정하기
외부에서 공유기에 연결된 장치들의 내부 네트워크로 연결하기 위해서는 포트포워드를 설정해줘야 합니다.
- 192.168.0.1로 접속 및 로그인 후 "관리도구" 접속
- 고급 설정 > 네트워크 관리 > 내부 네트워크 설정 접속
- 접속된 장치 리스트 중에 라즈베리파이를 확인하고 내부 IP를 확인 : 예시. 192.168.0.2
- 고급 설정 > NAT/라우터 관리 > 포트포워드 설정 접속
- "규칙 이름" 을 원하는대로 설정
- 방금 확인한 IP주소를 "내부 IP 주소" 에 적기
- 프로토콜은 TCP로 설정
- 외부 포트와 내부 포트는 둘 다 80~80 으로 설정
- 적용 버튼 누르기
이러고 나면 드디어 외부에서 접속할 수 있는 환경이 됩니다.
ssh 접속하기
이제 집이 아니라 외부라고 치고, 터미널을 사용할 수 있는 프로그램으로 진입합니다. 맥이면 기본 터미널 앱으로 접속하고, 윈도우는 moba Xterm 같은 걸로 접속하시면 되어요. 예를 들어 환경이 다음과 같다고 할게요.
- DDNS 주소 : asdf.iptime.org
- 내부 IP : 192.168.0.2
- 라즈베리파이 ID : pi
그리고 다음의 명령어를 치면 됩니다.
ssh -R 8585:asdf.iptime.org:80 pi@192.168.0.2
이렇게 치고 나면 비밀번호를 치라는 화면이 나옵니다. 비밀번호를 치고 나면 접속 완료!
댓글