티스토리 뷰

안녕하세요.

신랑 각시의 신랑 입니다.


일하다가 필요해서 만든 소스코드 (source code) 1탄 - 포트 포워딩 (port forwarding) 입니다.


상황 - 1


저는 ToadHideSQL 과 같은 DB Client tool 을 이용하여 DB 서버에 연결을 해야 합니다. 그런데, Site 의 방화벽 정책으로 인하여, 제 PC 에서 DB 서버를 direct 로 연결할 수 없었습니다.


터미널 프로그램으로 Gateway 가 되는 서버에 접속한 후에, 다시 DB 서버로 접속할 수 있었습니다. ( mysql, isqlplus 으로 접속 )

Client Tool 없이 DB 작업은 너무 불편했습니다.



상황 - 2


저는 PC 에서  RESTful API 를 테스트 하려고, API Server 가 떠 있는 서버로 메시지를 보내고 싶었습니다. 그런데, API Server 를 바로 접속할 수 없고 다른 서버를 경유해서 접속해야 했습니다.


PC 에 있는 테스트용 Client ( 예, POSTMAN ) 을 경유 서버로 옮길 수가 없습니다.

난감합니다.




그래서,


중간에 경유 서버에 port forwarding 하는 간단한 스크립트를 만들어서 동작시켰습니다.


PC 에서 접속하면, 스크립트가 받아서 미리 설정된 작업 대상 서버의 포트로 연결을 시도하는 것이지요..



그렇게 하면, 내 PC 와 작업 대상 서버가 논리적으로 연결되어 PC 에서는 바로 연결된 것 처럼 사용할 수 있게 됩니다.


스크립트는 대략 이런 절차로 움직 입니다.




대부분의 리눅스에서 python 2.7 버전이 기본 설치되어 있어서, python 코드를 아래와 같이 작성해서 실행시켰습니다. 잘 되더군요.


경유 서버에서 실행시킵니다.

python port_forwardding.py [PC 에서 접속시도 할 port] [작업 대상 서버]:[작업 대상의 서비스 port]


소스 보기






댓글