Nesta resposta, passarei por um exemplo concreto. Você só precisa substituir os nomes de host, nomes de usuário e senhas dos computadores pelos seus.
Declaração do problema
Vamos supor que temos a seguinte topologia de rede:
our local computer <---> server 1 <---> server 2
Por uma questão de concretude, vamos supor que temos os nomes de host, nomes de usuário e senhas dos seguintes computadores:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Objetivo: queremos configurar um proxy SOCKS que escute na porta 9991de LocalPCforma que, toda vez que uma conexão LocalPCseja iniciada a partir da porta, 9991ela seja mit.eduexecutada hec.edu.
Exemplo de caso de uso: hec.edupossui um servidor HTTP acessível apenas em http://127.0.0.1:8001 , por motivos de segurança. Gostaríamos de poder visitar http://127.0.0.1:8001 abrindo um navegador na Web LocalPC.
Configuração
Em LocalPC, adicione ~/.ssh/config:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Em seguida, no terminal de LocalPC, execute:
ssh -D9991 HEC
Ele solicitará a senha do bobon mit.edu(ie dylan123), e depois a senha do johnon hec.edu(ie doe456).
Nesse ponto, o proxy SOCKS agora está sendo executado na porta 9991de LocalPC.
Por exemplo, se você quiser visitar uma página da Web sobre o LocalPCuso do proxy SOCKS, faça no Firefox:

Algumas observações:
- in
~/.ssh/config, HECé o nome da conexão: você pode alterá-lo para o que quiser.
- O
-D9991instrui sshpara configurar um proxy SOCKS4 na porta 9991.