본문 바로가기
e-Logbook

안드로이드에서 SSH를 이용한 터널링

by Thdnice 2021. 6. 29.
반응형

SSH를 통한 포트포워딩으로 터널링을 하면 쉽게 IP를 우회함으로써 여러가지 트릭을 부릴 수 있다. 간단하게는 차단된 사이트 (예를들어 국내에서 접속할 수 없게 되어 있는 북한의 우리민족끼리 같은 사이트)를 접속할 수 있으며, 기타 IP 주소를 확인함으로써 차단되는 여러 사이트를 접속하는데 사용할 수 있다.

http 프록시로도 비슷한 효과를 누릴 수 있지만, SOCKS5 (Socket Secured 5)의 경우는 네트워크 페킷을 구분하지 않기 때문에 트래픽 자체를 유연하게 프로토콜을 변경할 수 있다. (토렌트, ftp, http 등에 모두 사용 가능)

물론 이보다 더 강려크한 VPN 같은 개념이 있지만, vpn 은 일반적으로 느리고, 중계서버가 유료인 경우가 많으며 무엇보다 별도의 앱이나 프로그램이 필요해서 번거롭다. 따라서 간단한 ip 우회/터널링을 위해서 SOCKS 프록시를 사용하는건 매우 유용한데, 의외로 데스크탑과 달리 안드로이드에서는 이에 대하여 자세하게 설명된 문서가 별로 없어 이 참에 블로그에 정리해둔다.


1. SSH 접속

안드로이드 생태계에서는 ssh 접속을 위해 무수히 많은 앱들이 존재하는데, 그 중에서 가장 일반적으로 사용되는 Connect Bot 위주로 설명하도록 한다. (JucieSSH 의 경우 기능은 제공하나 프로팩(유료) 버전이 필요함)



먼저 접속할 서버(또는 아무 ssh로 접속가능한 아무 컴퓨터)와 연결을 위해 커넥션을 설정해준다. 기본적으로 ssh 는 22번 포트를 사용하지만 여러가지 이유로 (외부 공격으로부터 격리시키기 위하여) 포트를 바꾸는 경우도 있으므로 알아서 본인의 케이스에 맞게 설정한다.



이 생성된 커넥션을 길게 누르면 포트포워딩 옵션이 나오는데, 여기서 포트포워딩 옵션을 추가 (+)버튼을 누르고, 종류는 Dynamic(동적) 으로, 그리고 Source Port(원본포트) 는 적당히 안쓰는 포트 번호를 지정해둔다. (통상적으로 8888, 8080 같은 포트들이 쓰인다.)


이렇게 포트 포워딩 옵션이 생성된 상태로 커낵션을 눌러서 ssh에 접속을 하면, 별도 화면이나 지시창은 보이지 않지만 포트포워딩이 수립된 상태로 연결이 진행된다.



2.  프록시 설정

이 상태에서 연결을 끊지 않고 웹 브라우저를 연다. 본인의 경우 Android용 Firefox를 사용하고 있는데,  Firefox 의 경우 설정 > 부가기능 > 부가기능 관리자를 통해서 Proxy 설정이 가능한 Add-on 을 설치할 수 있다. (FoxyProxy)


설치가 된 상태라면 위에서 연결한 Connect Bot에서 열린 Tunnel 을 연결해줘야 하는데, 위에서 원본(소스) 포트의 8080을 연결했다면,

아래 그림과 같이

Title : 적당히 내가 알아볼 수 있는 이름
Proxy Type : SOCKS5
Proxy IP address : localhost (또는 127.0.0.1 을 입력해도 좋다)
Port : 아까 위에서 지정했던 포트 (8080등)
Username / Password : 필요없음



설정 후 저장한다.





3. 프록시 실행

이제 이 프록시를 사용하면 터널링을 통한 접속을, 실행하지 않으면 모바일의 자체 네트워크 (연결된 셀룰러 3G/LTE 또는 Wifi 등)을 통해 접속할 수 있다.

프록시가 제대로 되어 있는지는 설정 > 부가 기능 을 통해 Indicate 아이콘을 보면 되지만, 보다 확실하게 하고 싶다면, 공인 아이피를 확인할 수 있는 whatismyip.com 등을 접속보면 된다.

아래 동영상을 보면 알겠지만, 최초 Proxy 가 켜져있을 때에는 SK Broadband 에서 제공하는 110.8.186.X 대역의 아이피를 가지고 웹에 접속한 것 처럼 보이지만, Proxy를 끄면 LG Telecom 에서 제공하는 106.102.128.X 대역의 아이피로 보인다. 다시 Proxy를 활성화 하면 SK Broadband 로 접속이 된다.  따라서 프록시를 키면, 실제 넷사용은 모바일 기기가 하지만, 서비스 제공하는 사이드에서는 마치 프록시 서버가 접속한 것 처럼 보이기 때문에, 해외에 있는 컴퓨터나 서버를 중계하여 접속하는데 사용할 수 있으며, 필요한 것은 오직 ssh 접속권한 하나 뿐 이므로 어디서든 간편하게 사용할 수 있다.

 

 

 

반응형