En esta respuesta voy a pasar por un ejemplo concreto. Solo necesita reemplazar los nombres de host, nombres de usuario y contraseñas de las computadoras por los suyos.
Planteamiento del problema
Supongamos que tenemos la siguiente topología de red:
our local computer <---> server 1 <---> server 2
En aras de la concreción, supongamos que tenemos los siguientes nombres de host, nombres de usuario y contraseñas de las computadoras:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Objetivo: queremos configurar un proxy calcetines que escucha en el puerto 9991de LocalPCmodo que cada vez que una conexión en la LocalPCque se inicia desde el puerto 9991pasa por mit.eduentonces hec.edu.
Ejemplo de caso de uso: hec.edutiene un servidor HTTP al que solo se puede acceder en http://127.0.0.1:8001 , por razones de seguridad. Nos gustaría poder visitar http://127.0.0.1:8001 abriendo un navegador web en LocalPC.
Configuración
En LocalPC, agregue ~/.ssh/config:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Luego, en la terminal de LocalPC, ejecute:
ssh -D9991 HEC
Le pedirá la contraseña de bobon mit.edu(es decir, dylan123), luego le pedirá la contraseña de johnon hec.edu(es decir, doe456).
En ese momento, el proxy SOCKS ahora se está ejecutando en el puerto 9991de LocalPC.
Por ejemplo, si desea visitar una página web sobre el LocalPCuso del proxy SOCKS, puede hacerlo en Firefox:

Algunas observaciones:
- en
~/.ssh/config, HECes el nombre de la conexión: puede cambiarlo a lo que desee.
- Le
-D9991dice sshque configure un proxy SOCKS4 en el puerto 9991.