Pular para o conteúdo
Guides 6 min de leitura 1042 visualizações

Tinyproxy

Conheça o Tinyproxy, um proxy HTTP minimalista para Linux. Este guia cobre a instalação e a configuração simples de um servidor leve.

Tinyproxy

Tinyproxy é um servidor proxy HTTP/HTTPS leve e de código aberto, projetado para consumo mínimo de recursos em sistemas Linux. Ele oferece a funcionalidade básica de proxy adequada para dispositivos embarcados, uso pessoal ou ambientes de rede de pequena escala em que a eficiência de recursos é crítica.

Visão geral e casos de uso

O Tinyproxy prioriza uma pegada pequena e uma configuração direta em vez de recursos extensos como cache avançado, métodos abrangentes de autenticação ou capacidades de proxy SOCKS presentes em soluções de proxy maiores. Ele funciona principalmente como um proxy HTTP/HTTPS (método CONNECT).

Casos de uso típicos do Tinyproxy incluem:

  • Proxy pessoal: ocultar endereços IP de clientes ou contornar geo-restrições básicas para usuários individuais.
  • Sistemas embarcados: fornecer serviços de proxy em dispositivos com CPU, RAM e armazenamento limitados.
  • Ambientes de desenvolvimento: testes locais de aplicações que usam proxy ou inspeção de tráfego de rede.
  • Gateway de rede pequena: um proxy simples, sem cache, para um número limitado de clientes.
  • Encadeamento de proxies: atuar como intermediário em uma configuração com múltiplos proxies.

Instalação

O Tinyproxy está disponível nos repositórios de pacotes padrão da maioria das distribuições Linux.

Debian/Ubuntu

sudo apt update
sudo apt install tinyproxy

RHEL/CentOS/Fedora

sudo dnf install tinyproxy
# Ou para CentOS/RHEL mais antigos:
# sudo yum install tinyproxy

Após a instalação, o Tinyproxy normalmente inicia automaticamente e escuta na porta 8888.

Configuração

A configuração do Tinyproxy é gerenciada por um único arquivo, normalmente localizado em /etc/tinyproxy/tinyproxy.conf. Todas as diretivas estão comentadas dentro do arquivo padrão, o que fornece autodocumentação.

Diretivas essenciais

  • Port: especifica a porta em que o Tinyproxy escuta.
    Port 8888
    Alterar esse valor exige reiniciar o serviço do Tinyproxy.

  • Listen: vincula o Tinyproxy a um endereço IP específico. Por padrão, ele escuta em todas as interfaces disponíveis (0.0.0.0). Especificar um endereço restringe o acesso.
    Listen 192.168.1.10

  • Allow: define os endereços IP ou sub-redes autorizados a se conectar ao proxy. Várias diretivas Allow podem ser usadas. Se nenhuma diretiva Allow for especificada, o Tinyproxy permite conexões de todos os hosts. Negar tudo explicitamente e então liberar faixas específicas é uma prática comum de segurança.
    # Deny all by default (if no Allow directives are present, this is implicitly false) # Allow 127.0.0.1 # Allow 192.168.1.0/24

  • Timeout: define o tempo limite de inatividade das conexões, em segundos.
    Timeout 600

  • User / Group: especifica o usuário e o grupo para os quais o Tinyproxy deve reduzir privilégios após a inicialização. Rodar como usuário não-root é uma boa prática de segurança.
    User tinyproxy Group tinyproxy

  • LogLevel: controla o nível de detalhe dos logs. As opções incluem Critical, Error, Warning, Notice, Info, Debug.
    LogLevel Info

  • LogFile: especifica o caminho do arquivo de log.
    LogFile "/var/log/tinyproxy/tinyproxy.log"

  • MaxClients: define o número máximo de conexões simultâneas de clientes que o Tinyproxy vai atender. Ultrapassar esse limite resulta em rejeição da conexão.
    MaxClients 100

  • DisableViaHeader: quando ativada, o Tinyproxy não adiciona o cabeçalho Via às requisições de saída. Isso pode aumentar a privacidade ao evitar a revelação da presença do proxy.
    DisableViaHeader Yes

  • ConnectPort: especifica quais portas o Tinyproxy vai permitir em requisições CONNECT (usadas para tunelamento HTTPS). Várias diretivas ConnectPort podem ser usadas.
    ConnectPort 443 ConnectPort 563

Diretivas de configuração avançada

  • Upstream: encadeia o Tinyproxy a outro servidor proxy. Essa diretiva especifica um proxy upstream para domínios específicos ou para todo o tráfego.
    ```
    # Use upstream_proxy.example.com:8080 for all requests
    Upstream http upstream_proxy.example.com:8080

    Use a different upstream for specific domains

    Upstream http 10.0.0.1:3128 "example.com"
    Upstream http 10.0.0.1:3128 ".example.org"
    `` A palavra-chavehttpindica um proxy HTTP. As diretivasUpstream` são processadas em ordem; a primeira correspondência prevalece.

  • NoCache: impede que o Tinyproxy envie determinados cabeçalhos HTTP que poderiam causar cache no lado do cliente. Isso não significa que o próprio Tinyproxy tenha um mecanismo de cache.
    NoCache

  • Filter / FilterURLs / FilterBypass: fornece filtragem básica de conteúdo com base em expressões regulares.

    • Filter "/etc/tinyproxy/filter.txt": especifica um arquivo com expressões regulares de URLs a bloquear.
    • FilterURLs Yes: ativa a filtragem por URL.
    • FilterBypass "192.168.1.0/24": permite que os clientes indicados ignorem a filtragem.

    O arquivo filter.txt deve conter uma expressão regular por linha. Por exemplo, para bloquear o Facebook:
    .*facebook\.com.*
    Esse é um mecanismo rudimentar de filtragem e não substitui soluções dedicadas de filtragem de conteúdo.

Gerenciamento do serviço

Depois de modificar o tinyproxy.conf, o serviço do Tinyproxy precisa ser reiniciado para que as alterações entrem em vigor.

Systemd (distribuições Linux modernas)

sudo systemctl restart tinyproxy
sudo systemctl enable tinyproxy # Garante que ele inicie no boot
sudo systemctl status tinyproxy

SysVinit (distribuições Linux antigas)

sudo /etc/init.d/tinyproxy restart
sudo /etc/init.d/tinyproxy status

Testando o proxy

Depois da configuração e do reinício do serviço, o proxy pode ser testado.

Usando curl

curl -x http://localhost:8888 http://ipinfo.io/ip

Substitua localhost:8888 pelo IP e pela porta do servidor Tinyproxy se o teste for feito a partir de outra máquina. A saída deve refletir o IP público do servidor Tinyproxy, e não o do cliente.

Configuração do navegador

Configure seu navegador (por exemplo, Firefox, Chrome) para usar um proxy HTTP no endereço IP e na porta do servidor Tinyproxy. Acesse um site para confirmar a conectividade.

Considerações de segurança

  • Controle de acesso: sempre restrinja o acesso ao proxy usando a diretiva Allow. Por padrão, o Tinyproxy pode aceitar conexões de todos os hosts se nenhuma diretiva Allow estiver presente.
  • Firewall: configure o firewall do sistema (por exemplo, ufw, firewalld) para permitir conexões de entrada na porta do Tinyproxy apenas a partir de faixas de IP confiáveis.
    bash # Exemplo usando ufw sudo ufw allow from 192.168.1.0/24 to any port 8888 sudo ufw enable
  • Usuário não-root: garanta que o Tinyproxy rode como usuário não-root (diretivas User e Group) para minimizar riscos de segurança.
  • Logs: monitore os logs do Tinyproxy em busca de atividade incomum.
  • DisableViaHeader: considere ativar essa opção para mais privacidade, embora ela não garanta anonimato.

Comparação com o Squid

Tinyproxy e Squid são servidores proxy HTTP para Linux, mas atendem a casos de uso diferentes e oferecem conjuntos de recursos distintos.

Recurso Tinyproxy Squid
Objetivo principal Uso mínimo de recursos, simplicidade Alto desempenho, recursos extensos, cache
Uso de recursos Pegada de CPU/RAM muito baixa CPU/RAM de moderada a alta, sobretudo com caches grandes e tráfego intenso
Cache Sem cache integrado Cache extenso e configurável para objetos HTTP
Autenticação Nenhuma nativamente Basic, Digest, NTLM, Kerberos, helpers externos
Controle de acesso Por IP (diretiva Allow) ACLs muito granulares por IP, domínio, URL, usuário, horário, métodos etc.
Protocolos HTTP, HTTPS (CONNECT) HTTP, HTTPS (CONNECT), FTP, Gopher, SOCKS (lado cliente para upstream)
Transparência Sem suporte a proxy transparente Suporte completo a proxy transparente
Complexidade Configuração simples, poucas diretivas Configuração complexa, muitas diretivas, scripts poderosos
Uso típico Sistemas embarcados, proxy pessoal, LAN pequena Redes corporativas, ISPs, grandes organizações, filtragem de conteúdo, segurança

Solução de problemas

  • Verifique os logs: a diretiva LogFile define onde o Tinyproxy grava seus logs. Aumente o LogLevel para Debug para obter saída mais detalhada durante a análise.
    bash sudo tail -f /var/log/tinyproxy/tinyproxy.log
  • Status do serviço: verifique se o Tinyproxy está rodando com systemctl status tinyproxy ou /etc/init.d/tinyproxy status.
  • Firewall: confirme que o firewall não está bloqueando conexões à porta do Tinyproxy. Se necessário, desative o firewall temporariamente para testar.
  • Sintaxe da configuração: revise o tinyproxy.conf em busca de erros de sintaxe. O Tinyproxy costuma não iniciar ou registra erros nos logs quando a configuração está malformada.
  • Conectividade de rede: verifique se o servidor Tinyproxy tem conectividade de rede com os destinos pretendidos.
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.