본문 바로가기

Linux

[Linux] Local port forwarding

가정은 다음과 같다. Remote에서 docker 안에 서버를 돌린다. 5000번 포트이다. 이때 docker run 옵션으로 --network host로 해서 docker와 host의 네트워크를 묶어놓았다.
이때 해당 서버는 127.0.0.1에서의 접속만 허용한다.

 

Dynamic port forwarding(SOCKS proxy)은 이 경우 실패한다. Local port forwardining을 사용해야한다.

사용법은 다음과 같다.

ssh -N -L 5000:127.0.0.1:5000 name_of_remote_server

Proxy jump를 사용해서 사이에 여러 서버를 거쳐가더라도 된다.

따로 컴퓨터에서 proxy 설정을 하지 않아도 웹브라우저를 통해 127.0.0.1:5000으로 접속이 된다.

 

Proxy를 설정하더라도 SOCKS가 실패하는 이유는, 대부분의 web browser에서 127.0.0.1를 remote server의 루프백 주소로 받아들이지 않기 때문이라고 한다.

 

Local port forwarding이 되는 이유는, 로컬 127.0.0.1:5000에 서버를 여는 효과를 주기 때문이다. 그래서 프록시와는 상관없다.