Como Criar um Proxy TCP Incrivelmente Poderoso com socat (em Apenas Um Comando!)

Descubra o segredo por trás do utilitário socat, uma ferramenta que parece simples mas que, nas mãos certas, transforma-se numa verdadeira arma secreta para qualquer profissional de TI. O socat permite estabelecer um fluxo bidirecional de dados entre dois pontos — e com isso, abre as portas para controlar, redireccionar e monitorizar tráfego TCP como um verdadeiro mestre da rede.

Imagine um cenário onde precisa de aceder a um serviço atrás de um NAT ou firewall… Impossível? Não com o socat. Este utilitário, cujo nome significa “SOcket CAT”, suporta uma gama impressionante de tipos de endpoints: TCP, UDP, sockets UNIX, ficheiros e até processos. Um verdadeiro canivete suíço para redes!

Para qualquer programador, administrador de sistemas ou hacker ético, o socat pode poupar horas de dores de cabeça. Seja para testes de rede, debugging entre containers, ou acesso remoto a serviços escondidos, socat resolve com uma única linha de comando aquilo que outras ferramentas complexas não conseguem.

Instalação rápida:

  • Debian/Ubuntu: sudo apt-get install socat
  • macOS (Homebrew): brew install socat

Sintaxe essencial para dominar o socat:

Bash
socat <origem> <destino>

Exemplos de formato:

  • TCP4-LISTEN:<porta>
  • TCP4:<host>:<porta>

Tudo o que precisa de dizer ao socat é: “de onde” e “para onde” encaminhar os dados. A magia acontece automaticamente, em ambas as direções!


🚀 EXEMPLO 1: Tunnel ADB Android como um Profissional

Após conectar o dispositivo Android via ADB, execute:

Bash
adb devices
adb tcpip 5555

Se o comando não expuser a porta corretamente na interface LAN, use socat para forçar a ponte:

Bash
socat tcp4-listen:5555,fork,reuseaddr,bind=192.168.1.33 tcp4:localhost:5555

⚠️ Nota: Altere o IP (192.168.1.33) conforme a sua rede. Verifique com ifconfig.


🔥 EXEMPLO 2: Servidor Python com Proxy TCP em Segundos

Crie um servidor HTTP local (por baixo é apenas TCP):

Bash
python -m http.server --bind 127.0.0.1

Verifique:

Bash
curl http://localhost:8000

Agora, para aceder remotamente a este servidor via LAN:

Bash
socat tcp4-listen:8005,fork,reuseaddr,bind=192.168.1.33 tcp4:localhost:8000

⚠️ Pode obter erro de “connection refused” se o firewall bloquear. Permita a porta:

Bash
sudo ufw allow 8005/tcp
sudo ufw status

🌐 Controle Total da Sua Rede com Apenas Um Comando

Socat transforma qualquer máquina numa verdadeira central de tráfego TCP. Precisa de proxy entre containers? Aceder a um serviço escondido? Redireccionar tráfego local para outro servidor? A resposta está aqui.

Instale, execute e maravilhe-se com a simplicidade poderosa do socat. Um comando. Resultados impressionantes. Eficiência total.

Artigos Relacionados