![대상에 따라 다른 프록시 서버를 통해 트래픽을 라우팅하는 방법](https://linux55.com/image/73279/%EB%8C%80%EC%83%81%EC%97%90%20%EB%94%B0%EB%9D%BC%20%EB%8B%A4%EB%A5%B8%20%ED%94%84%EB%A1%9D%EC%8B%9C%20%EC%84%9C%EB%B2%84%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%ED%8A%B8%EB%9E%98%ED%94%BD%EC%9D%84%20%EB%9D%BC%EC%9A%B0%ED%8C%85%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
배경
저는 프록시 서버 뒤에 있는 회사 네트워크에서 작업합니다. 또한 요새/점프 호스트 SSH 프록시를 통해 액세스할 수 있는 몇 가지 원격 사이트도 사용합니다.
내 SSH 터널 에는 ~/.ssh/config
요새 호스트를 우회하여 원격 연구실에 연결할 수 있는 프록시 구성이 있습니다.
Host *.remoteLab1
ProxyCommand ssh -l USERNAME BASTIONHOST1 nc %h %p
Host *.remoteLab2
ProxyCommand ssh -l USERNAME BASTIONHOST2 nc %h %p
나는 OSX와 Linux를 모두 사용하므로 명령이 거의 동일하다고 가정합니다.
현재 솔루션
내 현재 솔루션은 이상적이지 않습니다. 기본적으로 다음과 같은 원격 실험실 중 하나에 양말 연결이 있습니다.
ssh -D 1080 remoteLab1
ssh -D 1081 remoteLab2
그런 다음 둘 다에서 프록시 서버를 으로 realvnc
변경했습니다 . Chrome에는 이 작업을 수행할 수 있는 플러그인이 있고 VNC에는 이에 대한 설명서가 있습니다.chrome
localhost:1080 / localhost:1081
두 원격 연구소 모두 고유한 도메인을 가지고 있으므로 라우팅 테이블을 사용하여 IP 주소를 기반으로 이러한 양말 프록시를 통해 모든 트래픽을 보내는 더 쉬운 방법이 있는지 궁금합니다.
요청된 솔루션
반면:양말5 터널이 항구에 열렸습니다.1080
반면:양말5 터널이 항구에 열렸습니다.1081
필요하다
domain1.org
전달된 주소1080
domain2.org
전달된 주소1081
- 실패 - 다른 모든 것은 표준 프록시 서버를 통과합니다.
소유 할 가치
- 솔루션은 영구적이지 않습니다. 양말 터널 중 하나를 여는 것과 결합된 스크립트를 통해 활성화됩니다.
프록시 서버 중 하나를 통해 도메인 대신 특정 IP 주소를 매핑하는 것도 가능합니까?
아이디어
이 모든 것을 어디서부터 시작해야 할지 잘 모르겠습니다. 내가 어딘가에서 본 해결책 중 하나는 a를 사용하는 것이 proxy.pac
었지만 회사 네트워크에는 이미 a가 있습니다 . 내 사용자 정의가 아닌 경우 회사의 설정을 사용하는 proxy.pac
실패 방법이 있는지 잘 모르겠습니다pac
.pac
.pac
iptables
또는 명령을 사용하십시오 route
. 그러나 둘 다 내 지식을 넘어서는 것입니다.
로컬 루프백 등을 설정하세요.
답변1
ProxyCommand
using 을 nc
use 로 변경하는 것이 좋습니다 -W
. 예를 들어:
ProxyCommand ssh -l USERNAME BASTIONHOST1 -W %h:%p
이렇게 하면 배스천 호스트에 대한 요구가 줄어들므로 관리자가 배스천 호스트 구성 방식을 변경하기로 결정한 경우 오류가 발생할 가능성이 줄어듭니다.
다른 pac 파일 간에 전환할 수 있는 방법이 없다고 생각합니다. 그러나 한 가지 주의사항으로 두 개의 pac 파일을 어느 정도 연결할 수 있습니다. 진입점은 두 파일 모두에 존재합니다. 원본 pac 파일에서 진입점의 이름을 바꿔야 하며, 추가로 이름이 바뀐 함수 버전을 호출할 수 있습니다.
역사적으로 진입점은 FindProxyForURL이라는 함수였습니다. 일부 최신 브라우저에는 다른 이름을 사용하는 진입점을 통해 활성화된 확장 기능이 있습니다.