답변:
ssh를 사용 하여이 작업을 수행 할 수 있습니다
ssh -L 80:remotehost:80 user@myserver
그러면 로컬 포트 80에서 원격 호스트 포트 80으로 터널이 생깁니다. myserver와 같을 필요는 없습니다. 투명하게하려면 hosts 파일에 항목을 추가해야합니다. 그렇게하지 않으면 가상 호스트가 작동하지 않습니다. SOCKS 프록시 연결을 원한다면
ssh -D 5000 user@myserver
그러면 localhost 포트 5000에 SOCKS 프록시가 생성되어 myserver를 통해 모든 요청이 라우팅됩니다.
ssh -L 81:remotehost:80 user@myserver
로컬 포트 80과 다른 경우 로컬 포트 81 에서 원격 포트가 80 인 것처럼 말하면 더 유용합니다 .
Host myserver User user DynamicForward 5000
퍼티도 이것도 꽤 잘합니다.
SSH에서 터널로 이동하십시오. 하단에서 포트에 8080을 넣고 대상으로 검은 색으로두고 "동적"라디오 버튼을 선택합니다. 당신이해야 할 일은 이제 Putty를 사용하여 서버에 연결하십시오.
연결되면 포트 8080의 로컬 호스트에서 프록시 서버를 실행하여 서버를 통해 모든 요청을 프록시합니다.
이제 웹 브라우저를 사용하고 host = localhost 및 port = 8080을 설정하여 프록시를 설정하고 선택한 SOCKS 프록시를 확인하십시오. 항상이 작업을 수행하므로 Firefox를 사용하는 경우 한 번의 클릭으로 프록시를 켜거나 끌 수 있으므로 FoxyProxy 플러그인을 설치하십시오.
주의 : 기본적으로 DNS 요청은 프록시되지 않습니다. 따라서 프록시를 통해 방문한 웹 사이트는 여전히 기록됩니다 (이 내용을 기록하는 경우). DNS 요청을 프록시하도록 firefox를 설정할 수도 있지만 기본적으로 수행하지는 않습니다.
sshuttle은 VPN처럼 작동하지만 SSH를 통해 작동합니다.
가난한 사람의 VPN으로 작동하는 투명한 프록시 서버. ssh를 통해 전달합니다. 관리자가 필요하지 않습니다. Linux 및 MacOS에서 작동합니다. DNS 터널링을 지원합니다.
프록시가 컴퓨터를 실행하고 다른 클라이언트가 연결하도록하려면 -g 옵션이 필요합니다. 예를 들어, foo라는 서버에서 이것을 실행합니다 :
ssh -g -ND 9191 root@remotehost
그런 다음 클라이언트 브라우저에서 프록시를 설정하여 SOCKS 프록시에 서버 foo 및 포트 9191을 사용하도록 할 수 있습니다. 클라이언트는 요청을 foo로 보내면 ssh를 통해 원격 호스트로 요청을 전달합니다. 인터넷에서는 원격 호스트를 사용하는 것처럼 보입니다.
firefox와 함께 DNS 요청을 전달하려면 firefox에서 about : config를 편집하고 network.proxy.socks_remote_dns를 true로 설정하십시오.
SSHUTTLE을 사용할 수 있습니다. 여기에는 사용법에 대한 자습서가 있습니다.
https://etherarp.net/sshuttle-a-vpn-for-the-lazy/
다음은 서비스로 작동하도록 설정하는 방법에 대한 자습서입니다.
https://medium.com/@mike.reider/using-sshuttle-as-a-service-bec2684a65fe