상황은 다음과 같습니다. SSH 터널을 통해서만 액세스할 수 있는 호스트가 있습니다. 말해 보자
SSH 터널을 설정하고 로컬 포트 연결에 필요한 443개 포트를 바인딩할 수 있습니다.
ssh -L 1443:example.com:443 -L 2443:other.com:443 -A -l username myproxy.com
지금까지는 잘 작동합니다. 에 전화하면 https://localhost:1443
example.com을 열 수 있고, 에 전화하면 https://localhost:2443
other.com에 전화할 수 있습니다.
문제: 이를 인식하지 못하고 여전히 일반 호스트 이름과 포트를 통해 연결을 시도하는 일부 앱이 있습니다.
파일 에 다음 줄을 추가하면 hosts
최종 솔루션에 한 걸음 더 가까워질 수 있습니다.
127.0.0.1 example.com
127.0.0.1 other.com
이를 통해 브라우저에서 전화를 걸 수 있지만 포트는 여전히 문제 https://example.com:1443
입니다 . 다른 응용 프로그램에서 작동하도록 하려면 https://other.com:2443
두 도메인을 모두 로컬 포트에 매핑해야 합니다 .443
443
포트를 수신 하고 호스트 이름을 기반으로 트래픽을 또는 중 하나로 전달하는 1443
로컬 프록시 서버가 필요할 것 같지만 2443
이것이 내가 잃어버린 곳입니다.
내 컴퓨터의 모든 앱이 호스트 이름/포트만 사용하고 트래픽이 내 SSH 터널을 통과하도록 하려면 어떻게 해야 합니까?
답변1
사용 ssh -D
. 그러면 브라우저에서 구성하고 액세스할 수 있는 지정된 포트(일반적으로 1080 또는 9050)에 SOCKS 5 프록시 서버가 생성됩니다.모든 것SSH 터널을 통해.
이는 OpenSSH, PuTTY(plink), Bitvise Tunnelier와 동일하게 작동합니다. 운영 체제 수준 기능에 의존하지 않습니다.
예를 들어 ssh -D 9050
실행 시 Firefox를 다음과 같이 구성할 수 있습니다.
(Chrome에는명령줄 옵션대신에.)