Criar um proxy SOCKS usando o shell do Linux via SSH é uma ótima maneira de encaminhar o tráfego de rede de um computador remoto para a sua máquina local ou vice-versa, de forma segura. Para fazer isso, você precisará usar o encaminhamento de portas SSH, que permite redirecionar o tráfego de uma porta em uma máquina para outra porta em outra máquina através de uma conexão SSH.
Aqui está um exemplo de como você pode configurar um proxy SOCKS usando o shell do Linux via SSH:
- Inicie uma conexão SSH com encaminhamento de porta:
Suponha que você deseja usar a porta local 1080
como porta do proxy SOCKS na sua máquina local e a máquina remota tem um endereço IP de REMOTE_IP
. Execute o seguinte comando no seu terminal local:
ssh -D 1080 -N -f -C -q -p REMOTE_SSH_PORT user@REMOTE_IP
Explicando o comando passo a passo:
ssh
: Este é o comando para iniciar uma conexão SSH.-D 1080
: Isso especifica a opção de encaminhamento de porta dinâmica. A porta1080
é a porta na sua máquina local que será usada como porta do proxy SOCKS.-N
: Isso indica ao SSH para não executar comandos remotos após a conexão. Isso é útil quando você só quer o encaminhamento de porta e não precisa de uma sessão interativa no shell remoto.-f
: Isso solicita ao SSH para entrar em segundo plano após a autenticação. Isso permite que você continue a usar o terminal local enquanto a conexão SSH com encaminhamento de porta está ativa.-C
: Isso habilita a compressão de dados na conexão SSH, o que pode ajudar a economizar largura de banda, especialmente em conexões lentas.-q
: Isso torna a saída do SSH mais silenciosa, suprimindo mensagens de diagnóstico desnecessárias.-p REMOTE_SSH_PORT
: Especifica a porta SSH remota que você deseja usar para a conexão. SubstituaREMOTE_SSH_PORT
pelo número da porta SSH da máquina remota.user@REMOTE_IP
: Este é o nome de usuário SSH (user
) que você deseja usar para autenticação na máquina remota (REMOTE_IP
é o endereço IP da máquina remota).
Portanto, o comando SSH com a opção de encaminhamento de porta dinâmica -D
está configurando um proxy SOCKS local na porta 1080
e redirecionando o tráfego através da conexão SSH para a máquina remota. Esse proxy SOCKS pode ser usado por aplicativos que ofereçam suporte a proxies SOCKS, como navegadores, para rotear o tráfego pela conexão SSH, proporcionando uma conexão segura à internet a partir da máquina remota.
Substitua REMOTE_IP
pelo endereço IP da máquina remota e REMOTE_SSH_PORT
pela porta SSH remota. Certifique-se de substituir user
pelo seu nome de usuário SSH na máquina remota.
Isso inicia uma conexão SSH com encaminhamento de porta na sua máquina local, onde a porta 1080
será usada como porta do proxy SOCKS.
- Configure seu aplicativo para usar o proxy SOCKS:
Agora que o proxy SOCKS está configurado na sua máquina local, você precisa configurar um aplicativo (por exemplo, um navegador) para usar esse proxy. Abra as configurações do aplicativo que você deseja usar com o proxy SOCKS e configure-o para usar um proxy SOCKS em localhost
(ou 127.0.0.1
) na porta 1080
.
Após configurar o proxy SOCKS no aplicativo, o tráfego daquele aplicativo será encaminhado através da conexão SSH para a máquina remota e, a partir dela, para a Internet.
Lembre-se de manter a conexão SSH aberta para que o proxy SOCKS continue funcionando.
- Encerre a conexão SSH:
Quando você não precisar mais do proxy SOCKS, encerre a conexão SSH para liberar a porta local 1080
:
pkill -f "ssh -D 1080"
Isso encerrará a conexão SSH que estava em segundo plano.
Certifique-se de substituir as variáveis pelos valores apropriados na sua configuração.
Lembre-se também de que a segurança é importante. Certifique-se de que a máquina remota esteja bem protegida e que você esteja usando chaves SSH para autenticação, se possível, para tornar a conexão mais segura.