이번에는 터미널 에뮬레이터인 Xshell을 이용하여 ssh 터널링을 해보도록 하겠습니다.
외부 네트워크에서 방화벽으로 인해 포트가 막힌 공유기 등의 장치로 연결하고자 특정 포트를 열어서 외부 네트워크에서 접속할 수 있도록 하려면 포트 포워딩 과정이 필요합니다.
Xshell을 사용하는 이유는 SSH SOCKS 터널링 설정을 위해서 SSH 프로토콜이 필요하며 포워딩 규칙을 지정해야 하기 때문입니다.
현재 내부 네트워크의 웹 서버에 접속하기 위해서 80포트는 막혀있지만, 특정 포트가 열려있다고 가정하여 진행해보겠습니다. (테스트는 내부 호스트 서버로 진행하였습니다.)
먼저 Xshell을 켜고 ‘파일 – 새로 만들기’를 클릭하여 새 세션을 만듭니다.
세 세션의 호스트 정보를 입력한 후, ‘연결 – SSH – 터널링’을 클릭합니다.
새로운 포워딩 규칙을 추가한 후, ‘Dynamic (SOCKS4/5)’ 를 선택한 후 적용해줍니다.
(이 때 수신 대기 포트는 3333(열려있는 포트) 으로 지정해줍니다)
새 세션 정보 입력을 마무리 한 후 저장해 줍니다.
크롬(Chrome) 브라우저를 기준으로 ‘설정 – 네트워크 – 프록시 설정 변경’ 을 선택해줍니다.
인터넷 속성에서 ‘연결 – LAN 설정 – 프록시 서버’ 란의 ‘사용자 LAN에 프록시 서버 사용(이 설정은 전화 연결이나 VPN 연결에는 적용되지 않음)’을 체크해주고 ‘고급’을 클릭해줍니다. 이 때 ‘로컬 주소에 프록시 서버 사용 안 함’에 체크가 되어있는지에 대해 주의해주세요.
브라우저 프록시 설정의 ‘Socks’를 ‘localhost’ 로 입력해주시고 포트를 규칙에 설정된 포트로 입력합니다.
모든 인터넷 설정이 완료되었다면 확인을 클릭하여 빠져나와 줍니다.
이제 Xshell을 켜고 터널링 창을 보이게 한 뒤, 방금 만들었던 세션을 실행시켜줍니다.
포워딩 규칙대로 해당 세션의 IP를 사용하여 소켓을 사용한 포트 포워딩에 성공하였음을 보여줍니다.
(direct-tcpip와 도착지가 제대로 표시되었다면 포워딩이 적용된 것입니다.)
Xcode에서 iOS 애플리케이션을 빌드(Archive)하고 App Store Connect에 앱을 업로드하는 도중, 아래와 같은 에러가 발생하면서 더…
INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…