프록시처럼 서버를 통해 HTTP를 터널링하기 위해 SSH를 만들 수 있습니까?


33

말 나는이 serverclient. 나는에서 연결을 작성해야합니다 clientA와 website통해 server이 프록시처럼합니다.

SSH tunel을 사용 하여이 작업을 수행 할 수 server있습니까? 아니면 프록시 서비스를 설치해야 합니까?

답변:


43

ssh를 사용 하여이 작업을 수행 할 수 있습니다

ssh -L 80:remotehost:80 user@myserver

그러면 로컬 포트 ​​80에서 원격 호스트 포트 80으로 터널이 생깁니다. myserver와 같을 필요는 없습니다. 투명하게하려면 hosts 파일에 항목을 추가해야합니다. 그렇게하지 않으면 가상 호스트가 작동하지 않습니다. SOCKS 프록시 연결을 원한다면

ssh -D 5000 user@myserver

그러면 localhost 포트 5000에 SOCKS 프록시가 생성되어 myserver를 통해 모든 요청이 라우팅됩니다.


2
상자 외부의 클라이언트에서 해당 터널을 사용할 수있게하려면 -g 옵션을 추가하십시오.
mr-euro

1
작성된 명령이 저에게 효과적이지 않았습니다. 원격 호스트를 다음과 같은 루프백으로 교체해야했습니다. ssh -L 80 : 127.0.0.1 : 80 user @ myserver
eficker

원격 포트가 ssh -L 81:remotehost:80 user@myserver로컬 포트 ​​80과 다른 경우 로컬 포트 ​​81 에서 원격 포트가 80 인 것처럼 말하면 더 유용합니다 .
Rafareino

1
~ / .ssh / config를 통해 SOCKS 프록시를 추가하려면 다음을 사용하십시오.Host myserver User user DynamicForward 5000
bonh

15

네 가능합니다.

ssh -D port user@host박스를 SOCKS 프록시로 사용하도록 클라이언트를 실행 하고 설정 하십시오 .

HTTP 프록시가 필요한 경우 프록시 체인을 사용하여 이전 SOCKS를 통해 라우팅 할 수 있습니다.


5

퍼티도 이것도 꽤 잘합니다.

SSH에서 터널로 이동하십시오. 하단에서 포트에 8080을 넣고 대상으로 검은 색으로두고 "동적"라디오 버튼을 선택합니다. 당신이해야 할 일은 이제 Putty를 사용하여 서버에 연결하십시오.

연결되면 포트 8080의 로컬 호스트에서 프록시 서버를 실행하여 서버를 통해 모든 요청을 프록시합니다.

이제 웹 브라우저를 사용하고 host = localhost 및 port = 8080을 설정하여 프록시를 설정하고 선택한 SOCKS 프록시를 확인하십시오. 항상이 작업을 수행하므로 Firefox를 사용하는 경우 한 번의 클릭으로 프록시를 켜거나 끌 수 있으므로 FoxyProxy 플러그인을 설치하십시오.

주의 : 기본적으로 DNS 요청은 프록시되지 않습니다. 따라서 프록시를 통해 방문한 웹 사이트는 여전히 기록됩니다 (이 내용을 기록하는 경우). DNS 요청을 프록시하도록 firefox를 설정할 수도 있지만 기본적으로 수행하지는 않습니다.


5

sshuttle은 VPN처럼 작동하지만 SSH를 통해 작동합니다.

가난한 사람의 VPN으로 작동하는 투명한 프록시 서버. ssh를 통해 전달합니다. 관리자가 필요하지 않습니다. Linux 및 MacOS에서 작동합니다. DNS 터널링을 지원합니다.

https://github.com/sshuttle/sshuttle


2

프록시가 컴퓨터를 실행하고 다른 클라이언트가 연결하도록하려면 -g 옵션이 필요합니다. 예를 들어, foo라는 서버에서 이것을 실행합니다 :

ssh -g -ND 9191 root@remotehost

그런 다음 클라이언트 브라우저에서 프록시를 설정하여 SOCKS 프록시에 서버 foo 및 포트 9191을 사용하도록 할 수 있습니다. 클라이언트는 요청을 foo로 보내면 ssh를 통해 원격 호스트로 요청을 전달합니다. 인터넷에서는 원격 호스트를 사용하는 것처럼 보입니다.

firefox와 함께 DNS 요청을 전달하려면 firefox에서 about : config를 편집하고 network.proxy.socks_remote_dns를 true로 설정하십시오.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.