Pular para o conteúdo
Proxy Types 8 min de leitura 848 visualizações

SOCKS4 vs SOCKS5

Entenda as principais diferenças entre os protocolos de proxy SOCKS4 e SOCKS5. Saiba qual oferece mais segurança, recursos e desempenho para suas atividades online.

SOCKS5
SOCKS4 vs SOCKS5

SOCKS5 é o protocolo de proxy mais avançado e amplamente recomendado em comparação ao SOCKS4, oferecendo principalmente suporte a tráfego UDP, IPv6 e diversos métodos de autenticação, enquanto o SOCKS4 se limita a conexões TCP, IPv4 e não possui autenticação.

Um proxy SOCKS (Socket Secure) opera na Camada 5 (a camada de sessão) do modelo OSI, atuando como intermediário entre uma aplicação cliente e um servidor. Diferente dos proxies específicos de aplicação (por exemplo, os proxies HTTP), os proxies SOCKS são agnósticos de protocolo: encaminham todo o tráfego em nome do cliente sem interpretar o protocolo de rede em si. Isso permite que lidem com vários tipos de tráfego, incluindo HTTP, HTTPS, FTP e outros, estabelecendo uma conexão com o servidor de destino e retransmitindo os dados.

Protocolo SOCKS4

O SOCKS4 é uma versão mais antiga do protocolo SOCKS, projetada para necessidades de proxy mais simples.

Funcionalidade principal

O SOCKS4 suporta exclusivamente o proxy de conexões TCP (Transmission Control Protocol). Quando um cliente quer estabelecer uma conexão com um servidor de destino via proxy SOCKS4, ele envia uma requisição de conexão ao servidor proxy. O proxy então estabelece a conexão com o destino em nome do cliente e retransmite os dados entre eles.

Limitações

  • Somente TCP: o SOCKS4 não lida com tráfego UDP (User Datagram Protocol), o que o torna inadequado para aplicações que dependem de UDP para se comunicar, como jogos online, streaming de vídeo ou determinados serviços VoIP.
  • Somente IPv4: foi projetado para funcionar apenas com endereços IPv4. Não suporta IPv6, o que limita sua utilidade em ambientes de rede modernos, que adotam IPv6 cada vez mais.
  • Sem autenticação: o SOCKS4 não oferece nenhum mecanismo de autenticação embutido. Qualquer cliente pode se conectar e usar o proxy, o que o torna menos seguro para serviços de proxy públicos ou compartilhados. O campo USERID na requisição SOCKS4 é apenas um identificador e não serve para autenticação.
  • Resolução DNS no lado do cliente: a aplicação cliente precisa resolver o hostname de destino para um endereço IPv4 antes de enviar a requisição ao proxy SOCKS4. O proxy recebe um endereço IP, não um nome de domínio.
  • Comandos limitados: o SOCKS4 suporta essencialmente um único comando para estabelecer uma conexão.

Extensão SOCKS4a

Uma extensão não oficial, o SOCKS4a, foi introduzida para resolver a limitação da resolução DNS no lado do cliente. Com o SOCKS4a, os clientes podem enviar um nome de domínio em vez de um endereço IP. O servidor proxy então executa a resolução DNS. Apesar dessa melhoria, o SOCKS4a mantém as demais limitações do SOCKS4, como o suporte apenas a TCP e apenas a IPv4.

Estrutura da requisição SOCKS4 (conceitual)

Uma requisição de conexão SOCKS4 normalmente envolve o cliente enviando uma sequência de bytes ao proxy.

+----+----+----+----+----+----+----+----+----+----+....+----+
| VN | CD | DSTPORT |      DSTIP        | USERID       | NULL |
+----+----+----+----+----+----+----+----+----+----+....+----+
  1    1      2              4           variable      1
  • VN: número da versão (0x04 para SOCKS4)
  • CD: código do comando (0x01 para CONNECT)
  • DSTPORT: porta de destino
  • DSTIP: endereço IP de destino
  • USERID: ID do usuário (tamanho variável, terminado em null)

No SOCKS4a, se DSTIP for 0.0.0.X (onde X é diferente de zero), o nome de domínio real é anexado após o byte NULL que segue o USERID.

Protocolo SOCKS5

O SOCKS5 é o padrão atual e um avanço significativo em relação ao SOCKS4, oferecendo maior flexibilidade e mais recursos.

Funcionalidade principal

O SOCKS5 suporta tráfego TCP e UDP. Essa capacidade dupla o torna adequado a uma gama mais ampla de aplicações, inclusive as que exigem comunicação em tempo real. Ele também introduz uma fase de negociação dos métodos de autenticação, permitindo um uso mais seguro do proxy.

Principais melhorias

  • Suporte a TCP e UDP: o SOCKS5 pode fazer proxy de conexões TCP e UDP. O suporte a UDP é crucial para aplicações como VPNs (quando usam túneis baseados em UDP), jogos online, transmissões ao vivo e consultas DNS (se você usa um resolvedor DNS baseado em UDP).
  • Métodos de autenticação: o SOCKS5 suporta múltiplos métodos de autenticação, aumentando a segurança. Os métodos comuns incluem:
    • Sem autenticação (0x00): semelhante ao SOCKS4, nenhuma credencial é exigida.
    • Usuário/senha (0x01): o cliente fornece usuário e senha ao proxy para verificação.
    • GSS-API (0x02): um mecanismo de segurança mais robusto e extensível, geralmente usado em ambientes corporativos.
  • Suporte a IPv4 e IPv6: o SOCKS5 suporta nativamente endereçamento IPv4 e IPv6, o que o torna preparado para o futuro e compatível com infraestruturas de rede modernas.
  • Resolução DNS no lado do servidor: os clientes podem enviar um nome de domínio diretamente ao proxy SOCKS5, que então executa a resolução DNS. Isso tira a tarefa de resolução do cliente e, às vezes, melhora a privacidade ao evitar consultas DNS locais.
  • Comandos estendidos: o SOCKS5 suporta três comandos principais:
    • CONNECT (0x01): estabelece uma conexão TCP com um destino.
    • BIND (0x02): usado em protocolos nos quais o servidor precisa iniciar uma conexão de volta ao cliente (por exemplo, alguns modos do FTP). O proxy fica escutando uma conexão de entrada em nome do cliente.
    • UDP ASSOCIATE (0x03): estabelece um relay UDP, permitindo que o cliente envie e receba pacotes UDP através do proxy.

Estrutura da requisição SOCKS5 (conceitual)

O SOCKS5 envolve uma fase inicial de negociação para autenticação, seguida da requisição de conexão propriamente dita.

Negociação de autenticação (cliente para proxy)
+----+----------+----------+
| VER | NMETHODS | METHODS  |
+----+----------+----------+
  1       1       1 to 255
  • VER: versão do protocolo (0x05 para SOCKS5)
  • NMETHODS: número de métodos de autenticação suportados pelo cliente
  • METHODS: lista dos métodos de autenticação suportados
Resposta de autenticação (proxy para cliente)
+----+--------+
| VER | METHOD |
+----+--------+
  1      1
  • VER: versão do protocolo (0x05)
  • METHOD: método de autenticação selecionado (0xFF se nenhum método for aceitável)
Requisição de conexão (cliente para proxy)
+----+-----+-------+------+----------+----------+
| VER | CMD |  RSV  | ATYP | DST.ADDR | DST.PORT |
+----+-----+-------+------+----------+----------+
  1     1      1      1     variable      2
  • VER: versão do protocolo (0x05)
  • CMD: comando (0x01 para CONNECT, 0x02 para BIND, 0x03 para UDP ASSOCIATE)
  • RSV: reservado (0x00)
  • ATYP: tipo de endereço (0x01 para IPv4, 0x03 para nome de domínio, 0x04 para IPv6)
  • DST.ADDR: endereço de destino (tamanho variável conforme o ATYP)
  • DST.PORT: porta de destino

SOCKS4 vs SOCKS5: principais diferenças

Característica SOCKS4 SOCKS5
Versão do protocolo 4 5
Suporte a TCP Sim Sim
Suporte a UDP Não Sim
Autenticação Sem autenticação embutida Sim (sem auth, usuário/senha, GSS-API etc.)
Suporte a IPv4 Sim Sim
Suporte a IPv6 Não Sim
Resolução DNS No cliente (SOCKS4a permite no proxy) No proxy (também pode ser no cliente)
Tipos de endereço IPv4 (e nomes de domínio com SOCKS4a) IPv4, IPv6, nome de domínio
Comandos CONNECT CONNECT, BIND, UDP ASSOCIATE
Segurança Menor (pela falta de autenticação) Maior (pelas opções de autenticação)

Qual protocolo escolher

A escolha entre SOCKS4 e SOCKS5 depende dos requisitos específicos da aplicação, do ambiente de rede e das considerações de segurança.

Quando escolher o SOCKS4

O SOCKS4 é geralmente considerado legado. Seu uso se limita a cenários específicos:

  • Sistemas legados: ao trabalhar com aplicações cliente ou servidores proxy antigos que só suportam SOCKS4.
  • Simplicidade: para necessidades de proxy extremamente simples, em que UDP, IPv6 e autenticação são estritamente desnecessários, o SOCKS4 oferece uma implementação marginalmente mais simples (embora a diferença de desempenho seja insignificante).
  • Overhead mínimo: ainda que a diferença de overhead seja mínima na prática, o SOCKS4 tem um handshake ligeiramente mais simples.

Na maioria dos contextos modernos, o SOCKS4 não é a escolha preferida por causa de suas limitações.

Quando escolher o SOCKS5

O SOCKS5 é a escolha recomendada para quase todos os casos de uso contemporâneos, graças às suas capacidades superiores e à sua flexibilidade:

  • Tráfego UDP: essencial para aplicações que exigem UDP, como:
    • Jogos online
    • Voz sobre IP (VoIP)
    • Videoconferência e streaming
    • Compartilhamento de arquivos peer-to-peer (P2P)
    • Consultas DNS (se encaminhadas via proxy)
  • Requisitos de autenticação: se o serviço de proxy exige autenticação de usuário para controle de acesso e segurança, os métodos de autenticação embutidos do SOCKS5 são indispensáveis.
  • Conectividade IPv6: para ambientes que usam ou exigem IPv6, o SOCKS5 oferece suporte nativo, garantindo compatibilidade com a infraestrutura de rede do futuro.
  • Resolução DNS no lado do servidor: se o cliente prefere que o proxy cuide da resolução DNS (por exemplo, para potencialmente mascarar as consultas DNS locais do cliente ou por conveniência), o SOCKS5 oferece esse recurso.
  • Aplicações modernas: a maior parte dos softwares e sistemas operacionais modernos que suportam proxies SOCKS vai suportar SOCKS5.
  • Flexibilidade e preparação para o futuro: o SOCKS5 oferece uma solução mais robusta e versátil, mais bem equipada para lidar com requisitos de rede diversos e em evolução.

Considerações práticas

Ao integrar proxies SOCKS, considere o seguinte:

  • Segurança: nem o SOCKS4 nem o SOCKS5 criptografam o payload dos dados em si. Eles basicamente viabilizam a conexão. Para uma comunicação segura, garanta que o próprio tráfego da aplicação seja criptografado (por exemplo, usando TLS/SSL para tráfego HTTPS, ou tunelando a conexão SOCKS por uma VPN).
  • Suporte da aplicação: verifique se a aplicação cliente ou a configuração do sistema operacional suporta a versão do protocolo SOCKS escolhida. A maioria das aplicações modernas usa SOCKS5 por padrão, quando disponível.
  • Desempenho: a diferença de desempenho entre SOCKS4 e SOCKS5 é geralmente insignificante em conexões TCP típicas. O overhead introduzido pela negociação e autenticação do SOCKS5 é mínimo. O principal fator de desempenho será a latência e a largura de banda entre cliente, proxy e servidor de destino.
  • Configuração: configurar um proxy SOCKS normalmente envolve informar o endereço IP ou hostname do servidor proxy, a porta e, no caso do SOCKS5, possivelmente as credenciais de autenticação.
# Exemplo de configuração de aplicação (conceitual)
proxy_type = SOCKS5
proxy_host = proxy.example.com
proxy_port = 1080
proxy_username = myuser
proxy_password = mypassword

A escolha do SOCKS5 em vez do SOCKS4 é uma preferência clara para redes modernas, oferecendo um conjunto de recursos mais amplo e melhores capacidades de segurança para uma grande variedade de aplicações.

Atualizado: 03.03.2026
Voltar à categoria

Experimente nossos proxies

20,000+ proxies em 100+ países do mundo

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.