투명한 SSH 터널링

투명한 SSH 터널링

에 SSH 터널이 정의되어 있습니다 /etc/ssh/ssh_config. 여기에는 다음이 포함됩니다.

LocalForward 0.0.0.0:8000 some-service:80
LocalForward 0.0.0.0:8001 some-other-service:80

나는 여전히 원래 DNS 이름을 통해 터널에 액세스할 수 있기를 원합니다(예: 를 curl some-service사용하지 않고 계속 작동해야 함 curl 0.0.0.0:8000).

이를 수행하기 위해 내 /etc/hosts파일에 다음을 추가했습니다.

127.0.0.2 some-service
127.0.0.3 some-other-service

iptables이제 다음을 수행하는 몇 가지 명령이 필요하다고 생각합니다 .

When I see a request to 127.0.0.2:80 I should proxy it to 127.0.0.1:8000
When I see a request to 127.0.0.3:80 I should proxy it to 127.0.0.0:8001

그러면 (via ) curl some-service로 해결되어 (via ) 로 프록시되고 (ssh 터널을 통해)127.0.0.2/etc/hosts127.0.0.1:8000iptablessome-service:80


질문: 이를 달성하는 더 쉬운 방법이 있어야 한다고 생각합니까? 그렇지 않다면 iptables명령은 어떤 모습일까요?

답변1

사용ssh 다이나믹포워드다음을 추가하여 양말 프록시를 설정하는 옵션 .ssh/config:

DynamicForward localhost:8000

그런 다음 컬에게 SOCKS를 사용하도록 지시합니다.

curl --socks5 localhost:8000 ...

SOCKS를 사용 하는 다른 방법이 있습니다 curl. 을 참조하다선적 서류 비치.

답변2

여기서 올바른 예절이 확실하지 않지만(질문을 닫습니까? 중복으로 표시합니까?) 여기에 이 ​​질문에 대해 허용되는 답변이 있습니다.

https://serverfault.com/questions/982063/transparent-ssh-tunneling

관련 정보