Posso creare SSH per eseguire il tunneling di HTTP attraverso il server come se fosse proxy?


33

Di 'che ho un servere client. Ho bisogno di creare una connessione da clienta websiteattraverso servercome se fosse proxy.

È possibile farlo utilizzando un tunel SSH o devo installare un servizio proxy su server?

Risposte:


43

Puoi farlo usando ssh

ssh -L 80:remotehost:80 user@myserver

Avrai quindi un tunnel dalla tua porta locale 80 alla porta 80 dell'host remoto. Questo non deve essere lo stesso di myserver. Per renderlo trasparente è necessario aggiungere una voce al file hosts. Se non lo fai, i vhosts non funzioneranno. Se si desidera una connessione proxy SOCKS, è possibile utilizzare anche

ssh -D 5000 user@myserver

Ciò creerà un proxy SOCKS sulla porta localhost 5000 che instrada tutte le richieste tramite myserver.


2
Se hai bisogno che quel tunnel sia disponibile dai client fuori dalla tua scatola, aggiungi l'opzione -g.
sig. Euro

1
Il comando come scritto non ha funzionato per me. Ho dovuto sostituire l'host remoto con il loopback in questo modo: ssh -L 80: 127.0.0.1: 80 user @ myserver
eficker

Sarebbe più utile se la porta remota fosse diversa dalla ssh -L 81:remotehost:80 user@myserverporta locale 81 locale come se fosse 80 sul telecomando.
Rafareino,

1
Se si desidera aggiungere il proxy SOCKS tramite ~ / .ssh / config, utilizzare:Host myserver User user DynamicForward 5000
bonh

15

Sì, è possibile.

Esegui ssh -D port user@hoste configura il tuo client per usare la tua scatola come proxy SOCKS.

Se hai bisogno di un proxy HTTP in particolare, puoi usare Proxychains e instradarlo tramite i SOCKS precedenti.


5

Anche Putty lo fa abbastanza bene.

Sotto SSH, vai a tunnel. In basso, inserisci 8080 nella porta e, per la destinazione, lascialo nero e seleziona il pulsante di opzione "Dinamico". Questo è tutto ciò che devi fare, ora connettiti al server usando Putty.

Una volta connesso, hai un server proxy in esecuzione sul tuo host locale alla porta 8080 che eseguirà il proxy di tutte le richieste attraverso il tuo server.

Ora usa un browser web e imposta il proxy impostando host = localhost e port = 8080 e assicurati che sia un proxy SOCKS selezionato. Lo faccio sempre, quindi se usi Firefox, assicurati di installare il plug-in FoxyProxy poiché rende l'attivazione / disattivazione del proxy un affare con un clic.

Attenzione: tenere presente che per impostazione predefinita le richieste DNS non vengono inoltrate. Pertanto, il sito Web visitato tramite il proxy verrà comunque registrato (se registrano questa roba). Puoi anche impostare Firefox su proxy DNS, non lo fa per impostazione predefinita.



2

Per consentire a un proxy di eseguire un computer e consentire ad altri client di connettersi a te sarà necessaria l'opzione -g. Quindi, ad esempio, eseguiresti questo sul server chiamato foo:

ssh -g -ND 9191 root@remotehost

È quindi possibile impostare il proxy nel browser di un client per utilizzare il server foo e la porta 9191 per un proxy SOCKS. I client invieranno anche le loro richieste, che a loro volta inoltreranno la richiesta tramite ssh a remotehost. Quindi su Internet sembrerà che stiano usando remotehost.

Se si desidera inoltrare anche le richieste DNS con firefox, modificare about: config in firefox e impostare network.proxy.socks_remote_dns su true.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.