Pular para o conteúdo
Guides 7 min de leitura 1021 visualizações

ProxyChains

Conheça o ProxyChains no Linux, uma ferramenta poderosa para rotear o tráfego de rede por múltiplos proxies, aumentando a segurança e a privacidade online.

Security
ProxyChains

ProxyChains é uma ferramenta de linha de comando para Linux que força qualquer conexão TCP feita por um programa a passar por uma lista especificada de servidores proxy, formando uma "cadeia" para maior privacidade ou para contornar restrições de rede. Ela funciona interceptando chamadas de sistema relacionadas à rede de forma dinâmica, redirecionando-as através de um ou mais servidores proxy configurados antes de alcançar o destino final.

Visão geral do ProxyChains

O ProxyChains funciona como um wrapper para outros programas, permitindo que o tráfego de rede deles seja roteado por uma sequência de proxies. Esse mecanismo de encadeamento pode ofuscar a origem das requisições de rede, dificultando o rastreamento do endereço IP real de origem. É frequentemente usado para anonimato, contornar restrições geográficas ou acessar redes com controles de acesso baseados em IP.

Como o ProxyChains funciona

O ProxyChains utiliza o mecanismo LD_PRELOAD do Linux. LD_PRELOAD é uma variável de ambiente que especifica uma lista de bibliotecas compartilhadas a serem carregadas antes de quaisquer outras bibliotecas, incluindo a biblioteca padrão do C (libc). O ProxyChains fornece sua própria biblioteca compartilhada (libproxychains4.so), que contém versões modificadas de funções de rede padrão (por exemplo, connect(), send(), recv()).

Quando um programa é executado com o ProxyChains (por exemplo, proxychains4 <command>), a libproxychains4.so é pré-carregada. Essa biblioteca intercepta as chamadas do programa às funções de rede. Em vez de estabelecer conexões diretas, essas chamadas interceptadas são redirecionadas pela cadeia de proxies configurada. Esse processo é transparente para a aplicação encapsulada, que continua operando como se estivesse fazendo conexões de rede diretas.

Instalação

Os procedimentos de instalação variam ligeiramente conforme a distribuição Linux.

Debian/Ubuntu

sudo apt update
sudo apt install proxychains4

Fedora/CentOS/RHEL

sudo dnf install proxychains-ng
# Ou para sistemas mais antigos:
sudo yum install proxychains-ng

Arch Linux

sudo pacman -S proxychains-ng

A partir do código-fonte

Para outras distribuições ou versões específicas, o ProxyChains pode ser compilado a partir do código-fonte.

git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
sudo make install-config # Instala o arquivo de configuração padrão em /etc/proxychains.conf

Configuração

O arquivo de configuração principal do ProxyChains geralmente fica em /etc/proxychains.conf ou ~/.proxychains/proxychains.conf. Se nenhum dos dois existir, o proxychains.conf pode ser copiado do diretório do código-fonte ou de /usr/share/proxychains/proxychains.conf para /etc/proxychains.conf.

Diretivas principais

O arquivo de configuração define como os proxies são usados e quais proxies estão disponíveis.

  • strict_chain: todos os proxies da lista são usados na ordem em que aparecem. Se qualquer proxy da cadeia falhar, a conexão falha.
  • dynamic_chain: todos os proxies da lista são usados, mas se um falhar, ele é ignorado e a cadeia continua com o próximo proxy. Isso oferece mais resiliência.
  • random_chain: um número especificado de proxies (chain_len) é selecionado aleatoriamente da lista e usado em ordem aleatória.
  • chain_len: (usado com random_chain) especifica a quantidade de proxies a serem selecionados aleatoriamente.
  • proxy_dns: força a resolução das requisições DNS através da cadeia de proxies, mitigando vazamentos de DNS. Isso é crítico para o anonimato.
  • remote_dns_subnet: (usado com proxy_dns) especifica uma sub-rede IP a ser usada para consultas DNS remotas quando proxy_dns está habilitado. O padrão é 10.0.0.0/8.

Formato da lista de proxies

Os proxies são definidos no final do arquivo proxychains.conf, na seção [ProxyList]. Cada entrada de proxy segue este formato:

type ip_address port [username] [password]

Os tipos suportados incluem socks4, socks5 e http.

Exemplo de trecho do proxychains.conf

# ProxyChains configuration file

# Uncomment one of the proxy chain types:
# strict_chain
# dynamic_chain
random_chain

# Randomize the proxy list - no, this doesn't make sense.
# Keep the default order of proxies in the proxy list and use them in that order.
# If you want to randomize, use 'random_chain' above.
# random_chain_len 2

# Make a host where the chain starts from.
# This can be useful for some applications.
# chain_len 2

# Proxy DNS requests through the chain.
# This is highly recommended for anonymity.
proxy_dns

# Remote DNS subnet
# When proxy_dns is enabled, this subnet is used for remote DNS queries.
# Default is 10.0.0.0/8
# remote_dns_subnet 10.0.0.0/8

# Timeout for proxy connections.
# proxy_timeout 10000

# Proxy list - add your proxies here
# Format: type ip_address port [username] [password]
[ProxyList]
# socks4  127.0.0.1 9050  # Example for Tor (default SOCKS port)
# socks5  192.168.1.1 1080
# http    proxy.example.com 8080 user pass

# Example using multiple proxies for a chain
socks5  192.168.1.10 1080
socks5  192.168.1.11 1080
http    192.168.1.12 8080

Tipos de proxy suportados

O ProxyChains suporta os seguintes protocolos de proxy:

  • SOCKS4: protocolo de proxy simples para aplicações TCP. Não suporta UDP nem autenticação.
  • SOCKS5: protocolo de proxy avançado com suporte a TCP, UDP e autenticação. Recomendado para a maioria dos casos de uso.
  • HTTP: suporta proxies HTTP para tunelamento de conexões TCP. Pode ser usado com ou sem autenticação.

Exemplos de uso

Para usar o ProxyChains, coloque proxychains4 (ou proxychains em alguns sistemas) antes do comando que você deseja executar através dos proxies.

Uso básico

Verifique seu endereço IP externo através da cadeia de proxies:

proxychains4 curl ifconfig.me

Esse comando roteará a requisição do curl pela cadeia de proxies configurada, e o ifconfig.me informará o endereço IP do último proxy da cadeia, ou do primeiro proxy funcional se dynamic_chain estiver habilitado.

Testando vazamentos de DNS

Com proxy_dns habilitado no proxychains.conf:

proxychains4 curl https://ipleak.net/

Verifique a seção DNS em ipleak.net para confirmar que as requisições DNS são resolvidas pela cadeia de proxies e não pelo seu servidor DNS local.

Uso com scanners de rede

Escanear um alvo através de uma cadeia de proxies pode ocultar a origem do scan.

proxychains4 nmap -sT -Pn target.example.com

Observação: os modos -sS (SYN scan) do nmap e outros modos de pacote bruto não funcionam com o ProxyChains, porque o LD_PRELOAD intercepta apenas chamadas de socket de nível mais alto, e não a geração de pacotes brutos. Use -sT (TCP connect scan).

Uso com Secure Shell (SSH)

Para estabelecer uma conexão SSH através de uma cadeia de proxies:

proxychains4 ssh user@remote_host.com

Uso com Wget

Baixando arquivos através de uma cadeia de proxies:

proxychains4 wget https://example.com/file.zip

Uso com um navegador web (por exemplo, Firefox)

O ProxyChains foi projetado para aplicações de linha de comando. Para aplicações gráficas, como navegadores web, geralmente é mais eficaz configurar as opções de proxy do próprio navegador ou usar uma extensão dedicada de gerenciamento de proxy. Ainda assim, é possível forçar:

proxychains4 firefox

Esse método costuma ser menos estável e confiável para aplicações GUI complexas em comparação com as configurações nativas de proxy.

Comparação dos tipos de cadeia

Recurso strict_chain dynamic_chain random_chain
Uso dos proxies Todos os proxies da lista, em ordem. Todos os proxies da lista, em ordem, pulando os que falham. chain_len proxies selecionados e ordenados aleatoriamente.
Tolerância a falhas Baixa (a conexão falha se qualquer proxy falhar). Alta (ignora os proxies com falha). Moderada (falha se os proxies aleatórios selecionados falharem).
Anonimato Alto (caminho fixo, todos os proxies usados). Alto (caminho fixo, todos os proxies funcionais usados). Variável (caminho aleatório, diferente a cada vez).
Desempenho Potencialmente mais lento devido ao caminho fixo e completo. Mais rápido se alguns proxies estiverem lentos/fora do ar. Variável, depende dos proxies selecionados.
Caso de uso Quando todos os proxies são confiáveis e a ordem importa. Quando a resiliência é importante. Quando variar o caminho é desejável para o anonimato.

Considerações de segurança e limitações

O ProxyChains é uma ferramenta de roteamento de tráfego, não uma solução completa de anonimato. Os usuários precisam entender suas limitações.

Vazamentos de DNS

Sem o proxy_dns habilitado, as requisições DNS podem ser resolvidas diretamente pelo sistema local, expondo o IP real do usuário ao servidor DNS. Habilitar o proxy_dns é essencial para o anonimato.

Vazamentos de tráfego

O ProxyChains intercepta principalmente conexões TCP. Aplicações que usam UDP ou outros protocolos diretamente (por exemplo, alguns clientes VPN, aplicações VoIP, certos jogos ou os modos de pacote bruto do nmap) podem contornar a cadeia de proxies, causando vazamentos de tráfego. Não é adequado para aplicações que exigem anonimização completa da pilha de rede.

Sobrecarga de desempenho

Encadear múltiplos proxies introduz latência e reduz a taxa de transferência. Cada salto na cadeia adiciona tempo de processamento e atraso de rede. Quanto mais proxies na cadeia, mais lenta será a conexão.

Não é uma solução mágica para o anonimato

O ProxyChains oferece uma camada adicional de ofuscação, mas não garante anonimato absoluto. Adversários sofisticados ainda podem correlacionar padrões de tráfego ou explorar outras vulnerabilidades (por exemplo, fingerprinting de navegador, vazamentos de WebRTC) para desanonimizar um usuário. Ele deve ser usado em conjunto com outras práticas de segurança, como um sistema operacional seguro, regras robustas de firewall e escolha cuidadosa das aplicações.

Compatibilidade de aplicações

O ProxyChains depende do LD_PRELOAD para interceptar chamadas de biblioteca. Nem todas as aplicações se comportam de forma previsível quando suas funções de rede são interceptadas. Aplicações que usam bibliotecas de rede próprias, linkagem estática ou interfaces específicas do kernel podem não funcionar corretamente ou simplesmente não funcionar com o ProxyChains.

Atualizado: 03.03.2026
Voltar à categoria

Leia também

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.