Pular para o conteúdo

Configuração de proxy no Linux: guia completo para diversas distribuições

Гайды
Configuração de proxy no Linux: guia completo para diversas distribuições

A configuração de proxy no Linux é gerenciada principalmente por variáveis de ambiente, arquivos de configuração específicos de cada serviço ou ajustes do ambiente gráfico, para rotear o tráfego de rede através de um servidor remoto. Dependendo da distribuição — seja baseada em Debian, como o Ubuntu, baseada em RHEL, como o CentOS, ou o Arch Linux — os administradores precisam aplicar as configurações em camadas diferentes do sistema operacional para garantir cobertura completa de ferramentas de CLI, gerenciadores de pacotes e aplicativos gráficos.

Variáveis de ambiente globais para configuração de proxy

O método mais comum para definir um proxy no Linux é por meio de variáveis de ambiente. Essas variáveis são reconhecidas pela maioria dos utilitários de linha de comando, como curl, wget e git. Você pode defini-las temporariamente para uma única sessão ou permanentemente para todos os usuários.

Configuração temporária de sessão

Para aplicar um proxy somente na sessão atual do terminal, exporte as variáveis diretamente no seu shell. Isso é ideal para tarefas rápidas ou para testar um novo endpoint residencial da GProxy sem alterar arquivos do sistema.

export http_proxy="http://username:[email protected]:8080"
export https_proxy="http://username:[email protected]:8080"
export ftp_proxy="http://username:[email protected]:8080"
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"

Configuração permanente para todo o sistema

Para que essas configurações persistam após reinicializações e afetem todos os usuários, altere o arquivo /etc/environment. Esse arquivo é uma lista simples de pares chave-valor e não aceita comandos de shell script como export.

  1. Abra o arquivo com privilégios de root: sudo nano /etc/environment.
  2. Adicione as strings de proxy:
  3. Salve e reinicie a sessão ou execute source /etc/environment.

Para configurações permanentes específicas de um usuário, acrescente essas linhas ao arquivo ~/.bashrc ou ~/.zshrc. Isso garante que, sempre que aquele usuário abrir um terminal, o proxy esteja ativo automaticamente.

Configuração de proxy no Linux: guia completo para diversas distribuições

Configurações do gerenciador de pacotes por distribuição

Embora as variáveis de ambiente globais cubram muitas ferramentas, os gerenciadores de pacotes costumam exigir sua própria configuração explícita para contornar restrições de nível de sistema ou para garantir que as atualizações funcionem corretamente durante tarefas administrativas.

APT (Ubuntu, Debian, Linux Mint)

O Advanced Package Tool (APT) ignora variáveis de ambiente em algumas configurações por motivos de segurança. Para definir um proxy especificamente para o APT, crie um arquivo de configuração em /etc/apt/apt.conf.d/.

sudo nano /etc/apt/apt.conf.d/95proxies

Adicione as linhas a seguir, terminando cada uma com ponto e vírgula:

Acquire::http::Proxy "http://username:[email protected]:8080";
Acquire::https::Proxy "http://username:[email protected]:8080";

DNF e YUM (Fedora, RHEL, CentOS, AlmaLinux)

Nas distribuições baseadas em Red Hat, a configuração é feita dentro do arquivo principal dnf.conf ou yum.conf. Isso é essencial na manutenção de frotas de servidores em que as atualizações precisam passar por um gateway controlado.

  1. Edite a configuração: sudo nano /etc/dnf/dnf.conf.
  2. Adicione a linha de proxy: proxy=http://proxy.gproxy.com:8080.
  3. Se for necessária autenticação, adicione:
    • proxy_username=your_username
    • proxy_password=your_password

Pacman (Arch Linux, Manjaro)

Por padrão, o Pacman usa downloaders externos como o curl. Para configurar um proxy nas atualizações do Arch Linux, altere o /etc/makepkg.conf ou simplesmente use as variáveis de ambiente globais. Porém, para controle preciso sobre o downloader, edite /etc/pacman.conf para descomentar o XferCommand e incluir as flags de proxy.

Comparação dos métodos de configuração de proxy

Escolher o método certo depende de você precisar de um túnel para todo o sistema ou de uma ponte específica por aplicativo. A tabela a seguir resume os principais métodos em ambientes Linux.

Método Escopo Arquivo de configuração Melhor caso de uso
Variáveis de ambiente Usuário/Sessão ~/.bashrc Ferramentas de CLI (curl, wget, git)
Ambiente do sistema Global /etc/environment Roteamento padrão para todo o sistema
Configuração do APT Aplicativo /etc/apt/apt.conf.d/ Atualizações Debian/Ubuntu
Configuração do DNF Aplicativo /etc/dnf/dnf.conf Atualizações RHEL/CentOS
Proxychains Dinâmico /etc/proxychains.conf Apps sem suporte nativo a proxy
Configuração de proxy no Linux: guia completo para diversas distribuições

Roteamento avançado com Proxychains

Alguns aplicativos não respeitam as variáveis de ambiente ou não têm configurações internas de proxy. Nesses casos, o proxychains4 é a ferramenta padrão para forçar conexões TCP através de um proxy via pré-carregamento de hooks. Isso é especialmente útil em auditorias de segurança ou ao usar proxies SOCKS5 da GProxy.

Primeiro, instale o pacote: sudo apt install proxychains4 (no Debian) ou sudo dnf install proxychains-ng (no RHEL).

Edite o arquivo de configuração em /etc/proxychains4.conf. Vá até o final e adicione os dados do seu proxy:

[ProxyList]
# protocolo host porta usuario senha
socks5 127.0.0.1 9050
http proxy.gproxy.com 8080 username password

Para usá-lo, basta prefixar qualquer comando com proxychains4:

proxychains4 telnet example.com 80
proxychains4 nmap -sT -PN example.com

Automatizando o gerenciamento de proxies com Python

Para desenvolvedores e cientistas de dados que usam Linux para web scraping ou testes automatizados, gerenciar proxies programaticamente é mais eficiente do que a configuração manual. Com a biblioteca requests, você pode rotacionar endpoints da GProxy dinamicamente dentro dos seus scripts.

import requests

# Define as credenciais e o endpoint da GProxy
proxy_host = "proxy.gproxy.com"
proxy_port = "8080"
username = "your_user"
password = "your_password"

proxies = {
    "http": f"http://{username}:{password}@{proxy_host}:{proxy_port}",
    "https": f"http://{username}:{password}@{proxy_host}:{proxy_port}",
}

def test_proxy():
    try:
        # Verifica a conexao e o endereco IP
        response = requests.get("https://api.ipify.org?format=json", proxies=proxies, timeout=10)
        print(f"Current Outgoing IP: {response.json()['ip']}")
    except Exception as e:
        print(f"Connection Failed: {e}")

if __name__ == "__main__":
    test_proxy()

Esse script permite verificar se o seu ambiente Linux está roteando corretamente o tráfego pelo proxy antes de disparar tarefas automatizadas em larga escala. É especialmente útil para investigar por que um proxy definido para todo o sistema pode não estar afetando um ambiente virtual Python específico.

Configurando proxies em ambientes de desktop

Se você usa uma distribuição Linux com interface gráfica (GUI), como GNOME ou KDE Plasma, pode configurar proxies pelas configurações do sistema. Isso é necessário para navegadores como o Chrome (que usa as configurações do sistema) e outros aplicativos gráficos.

GNOME (Ubuntu, Fedora Workstation)

Vá em Configurações > Rede > Proxy de rede. Selecione "Manual" e informe os dados de host para HTTP, HTTPS e SOCKS. O GNOME aplica essas configurações via gsettings, que também pode ser alterado pelo terminal:

gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host 'proxy.gproxy.com'
gsettings set org.gnome.system.proxy.http port 8080

KDE Plasma

No KDE, vá em Configurações do Sistema > Rede > Configurações > Proxy. O KDE oferece a opção "Usar configuração de proxy especificada", na qual você pode definir proxies diferentes para cada protocolo. Diferentemente do GNOME, as configurações do KDE ficam armazenadas em ~/.config/kioslaverc.

Considerações de segurança e boas práticas

Configurar proxies envolve lidar com credenciais sensíveis. Guardar senhas em texto puro em /etc/environment ou no .bashrc é um risco se várias pessoas tiverem acesso à máquina. Para reduzir esse risco, considere as práticas a seguir:

  • Restrinja permissões: garanta que os arquivos de configuração com credenciais (como /etc/dnf/dnf.conf ou proxychains.conf) tenham permissões 600 ou 640, limitando o acesso de leitura ao root ou a usuários administrativos específicos.
  • Use whitelist de IP: se o seu provedor de proxy, como a GProxy, oferecer suporte, use whitelist de IP em vez de autenticação por usuário/senha. Isso elimina a necessidade de armazenar credenciais em arquivos de configuração locais.
  • Exclua o tráfego local: sempre configure a variável no_proxy. Não excluir localhost e 127.0.0.1 pode quebrar comunicações locais entre processos, como as usadas por contêineres Docker, bancos de dados (PostgreSQL/MySQL) e APIs internas.
  • SOCKS5 para UDP: se você precisa passar por proxy aplicativos que usam UDP (como alguns serviços de streaming ou consultas DNS), use um proxy SOCKS5 em vez de um proxy HTTP comum, já que proxies HTTP só suportam TCP.

Principais conclusões

A configuração de proxy no Linux é um processo em várias camadas que exige atenção tanto às variáveis de ambiente globais quanto às configurações específicas de cada aplicativo. Ao dominar essas configurações, você garante que seu sistema permaneça seguro, anônimo e capaz de contornar restrições de rede com eficiência.

  • Use /etc/environment para configurações globais e ~/.bashrc para sobrescritas por usuário.
  • Sempre configure os gerenciadores de pacotes separadamente (APT ou DNF) para garantir que as atualizações do sistema não sejam interrompidas por bloqueios de rede.
  • Aproveite o Proxychains para aplicativos sem suporte nativo a proxy ou para roteamento complexo com múltiplos saltos.

Dica prática 1: ao investigar problemas, use curl -v https://google.com. A flag de modo verboso mostra exatamente qual proxy está sendo usado e se o handshake de autenticação foi bem-sucedido.

Dica prática 2: para tarefas de alto desempenho, como web scraping no Linux, use os proxies residenciais da GProxy com as bibliotecas Python requests ou aiohttp para evitar limitação de taxa por IP e garantir altas taxas de sucesso em diferentes regiões geográficas.

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