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

3proxy

Domine a instalação e a configuração do 3proxy. Este guia detalha o setup de um servidor proxy leve, ampliando o controle e a privacidade da rede.

3proxy

3proxy é um conjunto de servidor proxy leve e de alto desempenho que pode ser instalado e configurado para fornecer serviços de proxy HTTP, HTTPS, SOCKSv4/4.5/5 e FTP, além de mapeamento de portas TCP e redirecionamento de tráfego, principalmente por meio de compilação a partir do código-fonte em sistemas Unix-like ou usando binários pré-compilados no Windows.

3proxy é um servidor proxy compacto e versátil, projetado para ambientes que exigem consumo mínimo de recursos e alta configurabilidade. Seu tamanho reduzido e sua eficiência o tornam adequado para sistemas embarcados, uso pessoal ou cenários em que um proxy completo como o Squid é exagero.

Pré-requisitos

Antes de instalar o 3proxy, verifique se o sistema de destino atende aos seguintes requisitos:

  • Sistema operacional: um sistema Unix-like (Linux, FreeBSD, macOS) para compilação, ou Windows para a distribuição binária. Este guia foca no Linux.
  • Compilador: GCC ou Clang (para compilação a partir do código-fonte).
  • Ferramentas de build: utilitário make.
  • Acesso à rede: capacidade de baixar os arquivos-fonte.
  • Privilégios de usuário: acesso root ou sudo para instalação e configuração do serviço de sistema.

Instalação

Instalar o 3proxy normalmente envolve baixar o código-fonte, compilá-lo e depois colocar os binários e os arquivos de configuração nos locais apropriados.

Baixar o código-fonte

Sempre baixe a versão estável mais recente do site oficial do 3proxy ou do seu repositório no GitHub.

# Navegue até um diretório temporário
cd /tmp

# Baixe a versão estável mais recente (substitua pela versão atual, se for diferente)
# Confira https://3proxy.ru/ ou https://github.com/3proxy/3proxy para o link mais recente
wget https://3proxy.ru/0.9.4/3proxy-0.9.4.tar.gz

# Extraia o arquivo
tar -xzf 3proxy-0.9.4.tar.gz

# Entre no diretório extraído
cd 3proxy-0.9.4

Compilar e instalar

O 3proxy usa um Makefile simples. A compilação é direta.

# Compile o 3proxy
make -f Makefile.Linux

# Crie os diretórios de instalação
mkdir -p /usr/local/3proxy/bin
mkdir -p /usr/local/3proxy/etc
mkdir -p /usr/local/3proxy/logs

# Instale o binário compilado e a configuração de exemplo
cp src/3proxy /usr/local/3proxy/bin/
cp 3proxy.cfg.sample /usr/local/3proxy/etc/3proxy.cfg

# Defina as permissões adequadas (opcional, mas é boa prática)
chmod 755 /usr/local/3proxy/bin/3proxy
chmod 640 /usr/local/3proxy/etc/3proxy.cfg

Para sistemas que exigem recursos específicos (por exemplo, autenticação NTLM, suporte a IPv6), consulte o src/Makefile.Linux para ver as flags de compilação. Por exemplo, para habilitar o NTLM: make -f Makefile.Linux NTLM.

Configuração básica

O arquivo de configuração principal do 3proxy é o 3proxy.cfg. Ele define portas de escuta, tipos de proxy, métodos de autenticação e regras de acesso. O local padrão é /usr/local/3proxy/etc/3proxy.cfg.

Diretivas principais

Um 3proxy.cfg mínimo inclui:

  • nserver: especifica os servidores DNS para resolução de nomes de host.
  • timeouts: define os diversos timeouts de conexão.
  • log: define o caminho e o formato do arquivo de log.
  • users: declara os usuários para autenticação.
  • auth: especifica o método de autenticação.
  • proxy, socks, tcppm: definem os serviços de proxy.

Exemplo: proxy HTTP/HTTPS simples

Esta configuração cria um proxy HTTP/HTTPS na porta 3128, exigindo autenticação básica para um usuário chamado testuser com a senha password123.

# /usr/local/3proxy/etc/3proxy.cfg

# Configurações globais
nserver 8.8.8.8 # DNS público do Google
nserver 8.8.4.4

# Timeouts em segundos
timeouts 1 5 30 60 180 1800 15 60

# Configurações de log
# log /usr/local/3proxy/logs/3proxy.log D # Rotação diária
log /usr/local/3proxy/logs/3proxy.log
logformat "- +_L%t.%. %N.%O %I %E %U %C:%c %R:%r %O %h %T"

# Usuários para autenticação: usuario:senha
users testuser:CL:password123

# Método de autenticação
# CL: senha em texto puro (não recomendado em produção)
# LM: hash LAN Manager
# NT: hash NTLM
# P: senha criptografada (formato interno do 3proxy, use `3proxy -e` para gerar)
auth strong # Usa autenticação forte (requer LM/NT ou P)
# Para senhas CL simples, use 'auth iponly,basic'

# Libera o acesso para usuários autenticados
allow testuser

# Define o serviço de proxy HTTP/HTTPS
# -p 3128: escuta na porta 3128
# -n: desativa a autenticação NTLM para este serviço (se o NTLM global estiver ativo)
# -a: ativa a autenticação básica
proxy -p3128

Para gerar uma senha criptografada usando 3proxy -e:

/usr/local/3proxy/bin/3proxy -e password123

A saída (por exemplo, _E_01000000010000000000000000000000) pode então ser usada na diretiva users com o prefixo _E_: users testuser:_E_01000000010000000000000000000000.

Executando o 3proxy

Depois de configurar o 3proxy.cfg, inicie o servidor:

/usr/local/3proxy/bin/3proxy /usr/local/3proxy/etc/3proxy.cfg

Para executá-lo em segundo plano como daemon:

/usr/local/3proxy/bin/3proxy /usr/local/3proxy/etc/3proxy.cfg -d

Tópicos avançados de configuração

Métodos de autenticação

O 3proxy suporta vários métodos de autenticação:

  • iponly: autenticação baseada apenas no endereço IP do cliente (sem usuário/senha).
  • basic: autenticação HTTP Basic (envia as credenciais em texto puro).
  • digest: autenticação HTTP Digest.
  • ntlm: autenticação NTLM (exige compilação com suporte a NTLM).
  • strong: seleciona automaticamente o método mais forte disponível.

Exemplo com auth iponly:

# /usr/local/3proxy/etc/3proxy.cfg
auth iponly
allow 192.168.1.0/24 # Libera todos os clientes desta sub-rede sem autenticação explícita de usuário
proxy -p3128

Controle de acesso

As diretivas allow e deny controlam o acesso dos clientes com base em vários critérios. As regras são processadas em ordem. A primeira regra que corresponder é aplicada.

# /usr/local/3proxy/etc/3proxy.cfg

# Bloqueia endereços IP específicos
deny 192.168.1.10

# Libera um usuário específico
allow myuser

# Libera uma sub-rede específica para HTTP/HTTPS
allow * 192.168.1.0/24 * * HTTP HTTPS

# Bloqueia o acesso a domínios de destino específicos
deny * * .example.com

A sintaxe de allow/deny é allow [user] [src_ip] [dst_ip] [target_port] [protocol]. O * funciona como curinga.

Encadeamento de proxies (proxies pai)

O 3proxy pode encaminhar requisições para outro servidor proxy usando a diretiva parent.

# /usr/local/3proxy/etc/3proxy.cfg

# Encadeia para um proxy HTTP upstream
parent 1000 http 192.168.1.100 8080 myuser:mypass

# Encadeia para um proxy SOCKS5 upstream
parent 1000 socks5 192.168.1.101 1080

O primeiro argumento, 1000, é um timeout em milissegundos.

Proxy SOCKS

Para configurar um proxy SOCKS (v4, v4.5, v5), use a diretiva socks.

# /usr/local/3proxy/etc/3proxy.cfg

# Define o serviço de proxy SOCKS na porta 1080
socks -p1080

Mapeamento de portas TCP (TCPPM)

A diretiva tcppm permite encaminhar conexões TCP de uma porta local para um host e porta remotos.

# /usr/local/3proxy/etc/3proxy.cfg

# Encaminha conexões da porta local 2222 para remotehost:22 (SSH)
tcppm -p2222 remotehost.example.com 22

Configuração de logs

A diretiva log especifica o arquivo de log. logformat define a estrutura da saída. rotate configura a rotação de logs.

# /usr/local/3proxy/etc/3proxy.cfg

# Grava o log em /usr/local/3proxy/logs/access.log
log /usr/local/3proxy/logs/access.log

# Formato de log personalizado
logformat "- +_L%t.%. %N.%O %I %E %U %C:%c %R:%r %O %h %T"

# Rotação diária (D), semanal (W), mensal (M) ou por tamanho (S<bytes>)
rotate D /usr/local/3proxy/logs/archive

Integração com o sistema (serviço systemd)

Para uma operação robusta, execute o 3proxy como serviço do systemd.

  1. Crie um arquivo de serviço: /etc/systemd/system/3proxy.service

    ```ini
    [Unit]
    Description=3proxy Lightweight Proxy Server
    After=network.target

    [Service]
    Type=forking
    ExecStart=/usr/local/3proxy/bin/3proxy /usr/local/3proxy/etc/3proxy.cfg -d
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    User=nobody # Ou um usuário dedicado sem privilégios, como '3proxy'
    Group=nogroup # Ou um grupo dedicado

    [Install]
    WantedBy=multi-user.target
    `` *Observação*: crie o usuário/grupo3proxyse desejar:sudo useradd -r -s /sbin/nologin 3proxy. Ajuste a propriedade dos arquivos em/usr/local/3proxy/logs`.

  2. Recarregue o systemd, habilite e inicie o serviço:

    bash sudo systemctl daemon-reload sudo systemctl enable 3proxy.service sudo systemctl start 3proxy.service sudo systemctl status 3proxy.service

Dicas de troubleshooting

  • Confira os logs: sempre consulte o arquivo de log do 3proxy (/usr/local/3proxy/logs/3proxy.log por padrão) em busca de mensagens de erro ou problemas de acesso.
  • Regras de firewall: garanta que o firewall (por exemplo, ufw, firewalld, iptables) permita conexões de entrada nas portas de escuta do 3proxy (por exemplo, 3128, 1080).
    bash # Exemplo para o ufw sudo ufw allow 3128/tcp
  • Sintaxe da configuração: verifique se há erros de sintaxe no 3proxy.cfg. O 3proxy é exigente quanto ao formato da sua configuração.
  • Permissões: garanta que o binário do 3proxy tenha permissão de execução e que o diretório de logs seja gravável pelo usuário que roda o serviço.
  • Reinicie o serviço: após qualquer alteração na configuração, recarregue ou reinicie o serviço do 3proxy (sudo systemctl restart 3proxy).

3proxy vs. Squid

Recurso 3proxy Squid
Uso de recursos Mínimo (pouca CPU e RAM) Moderado a alto (depende da carga/recursos)
Complexidade Relativamente simples, config em texto Complexo, muitas opções de configuração
Tipos de proxy HTTP, HTTPS, SOCKS, FTP, TCPPM HTTP, HTTPS, FTP, ICP, ESI
Cache Sem cache nativo Robusto e altamente configurável
Interceptação SSL Limitada/básica Avançada, baseada em certificados
Autenticação Basic, Digest, NTLM, por IP Abrangente (LDAP, Kerberos, RADIUS)
Caso de uso Leve, pessoal, embarcado Corporativo, alto tráfego, filtragem de conteúdo
Desenvolvimento Ativo, um único desenvolvedor Ativo, conduzido pela comunidade
Atualizado: 04.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.