Servire Internet su una macchina remota tramite sessione SSH?


19

La macchina attraverso la quale sto SSHing sulla macchina remota / host (stessa rete / LAN) ha accesso a Internet ma l'host no.

L'esecuzione di aggiornamenti e l'installazione di pacchetti sull'host diventa abbastanza scomoda perché quindi devo avviare un proxy localmente e quindi configurare il computer remoto per usarlo.

Quindi mi chiedevo se esiste un modo più semplice per farlo tramite, forse, SSH o qualcos'altro?

Ho una comprensione delle complessità che si trovano dentro, ma ero curioso di sapere.

Utilizzo plinktramite Emacs (se è importante).

Risposte:


21

Chiamiamo la macchina che ha accesso a Internet hasinete quella che non lo ha noinet.

Se è possibile effettuare una connessione SSH da noinet a hasinet

Puoi farlo facilmente con il proxy SOCKS incorporato di OpenSSH. Questo comando imposterà un proxy SOCKS noinetall'ascolto sulla porta 1080:

noinet$ ssh -D 1080 hasinet

Se si può fare solo connessioni SSH a noinet da hasinet

È possibile eseguire il proxy SOCKS di OpenSSH su hasinete quindi inoltrare una porta da noineta hasinet. Questo può essere abilmente fatto con un comando simile (grazie a @Patrick):

hasinet$ ssh -D 1080 localhost -t ssh -R 1080:localhost:1080 noinet

Come utilizzare il proxy SOCKS

Come si utilizza questo proxy dipenderà dall'applicazione. Alcune applicazioni hanno il supporto per i proxy SOCKS integrati. In tal caso, dovrai configurare l'app per utilizzare il proxy localhost:1080. Altrimenti, puoi usare proxychains o redsocks, come suggerisce @sciurus. tsocks è una soluzione più leggera se è necessario fornire l'accesso alla rete solo per alcuni comandi.


1
Invece di dover installare un proxy socks su hasinet quando noinet deve uscire, basta ssh -t -D 1080 localhost ssh -R 1080:localhost:1080 noinet(sì un comando).
Patrick,

2

Ecco un modo per farlo tramite SSH:

Sulla macchina senza accesso a Internet, eseguire

ssh -D 8080 machine_with_internet_access

Puoi sostituire 8080 con qualsiasi numero di porta non utilizzato,

Quindi installa software come proxychains o redsocks , configurali per connettersi a localhost: 8080 ed esegui software che richiede l'accesso a Internet attraverso di essi.

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.