ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Postman proxy를 이용해서 private VM에 API request 하기 (tunneling)
    Programing/OCI 2023. 8. 18. 15:34
    반응형

    https://medium.com/teamarimac/access-a-server-through-ssh-tunnel-and-send-api-requests-through-postman-in-windows-10-b7307974c1a0

     

    priavate 환경에 VM 인스턴스를 생성하고 내부에 서버를 구축했습니다.

    위의 그림과 비교해 설명하면 다음과 같습니다.

    • A: 로컬에 위치한 개인 컴퓨터 (Windows)
    • B: Public VM (Ubuntu) - 터널링 용 베스쳔 서버
    • C: Private VM (Ubuntu) - 운영/개발 서버 (flask)

     

    그리고 서버가 잘 구축되었는지, 인스턴스 환경에서 문제가 발생하지는 않는지 테스트를 진행하고자 합니다.

     

    방법을 검색해보면 대다수 이 링크에서 설명하는 방법과 크게 다르지 않습니다.

    하지만 네트워크 초보에게는 정보가 너무 적습니다. 어떻게 하라는건지 감이 잘 안왔습니다.

     

    시행착오를 거치며 접속, API요청에 성공한 방법을 공유합니다.

     

    주의

    • 당연히 네트워크 접속 보안규칙(AWS: inbound rule / OCI: ingress rule)은 알맞게 설정해 주셨죠?
    • 저는 flask의 기본 포트번호(5000번)을 변경하지 않고 사용했습니다.
    • 대다수 검색결과에서는 proxy 설정에 5001번 포트를 사용했고, 저도 5001번으로 설정했습니다.

     

    Step 1:  로컬 컴퓨터에서 퍼블릭 VM에 접속, 터널 생성

    cmd에서 Public VM에 접속해주세요. 이때, 터널도 함께 생성합니다.

    # password를 이용하는 경우
    ssh -D {port} {username}@{public-VM-IP}
    
    # ssh키를 이용하는 경우
    ssh -D {port} -i {path-of-key-file} {username}@{public-VM-IP}
    
    # 제가 접속에 사용한 명령
    ssh -D 5001 -i C:\Users\Lee\Documents\ssh\ssh-key-VM.key ubuntu@xxx.xx.xx.xxx

    접속했습니다

     

    Step 2:  proxy port 변경

    새로 cmd 창을 띄워서 작업해주세요.

    npm을 사용해야하는데, 만약 npm 명령이 먹히지 않는다면 node js를 사전에 설치해주세요.

    node js를 설치하면 npm도 함께 설치됩니다. 이후 http-proxy-to-socks를 설치합니다.

    npm install -g http-proxy-to-socks

     

    로컬호스트의 proxy port를 8080 port로 변경합니다.

    hpts -s 127.0.0.1:5001 -p 8080

     

    Step 3:  Postman proxy 설정

    Postman에서 설정에 들어갑니다.

    proxy 설정을 아래와 같이 설정해주세요

     

    Step 4: 테스트

    localhost로 요청을 날려보면 성공적으로 response를 받습니다!

    private VM에서도 당연히 로그가 남는걸 볼 수 있습니다.

    반응형

    댓글

Designed by Tistory.