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

Configuração de proxy no Linux

Um guia completo para configurar um proxy no Linux. Veja a configuração de ambiente, o gerenciamento de pacotes com APT e a integração com o Systemd.

Configuração de proxy no Linux

Configurar um proxy no Linux envolve definir variáveis de ambiente para as sessões de usuário, configurar o APT para o gerenciamento de pacotes e especificar as configurações de proxy para os serviços do Systemd, garantindo que todos os componentes do sistema consigam acessar redes externas através do proxy.

Muitos ambientes Linux operam atrás de firewalls corporativos ou exigem que o tráfego seja roteado por um servidor proxy para fins de segurança, registro ou controle de acesso. A configuração correta do proxy é crítica para o funcionamento do sistema, incluindo atualizações de software, acesso à internet para aplicações de usuário e comunicação de serviços em segundo plano. Este artigo detalha os métodos de configuração de proxy nos componentes mais comuns do Linux.

Variáveis de ambiente

Ambientes de shell e as aplicações que os herdam costumam depender de variáveis de ambiente padrão para a configuração de proxy. Essas variáveis definem o endereço do servidor proxy para tráfego HTTP, HTTPS e FTP, além das exceções para conexões diretas.

Variáveis de ambiente de proxy padrão

  • HTTP_PROXY: proxy para conexões HTTP.
  • HTTPS_PROXY: proxy para conexões HTTPS.
  • FTP_PROXY: proxy para conexões FTP.
  • NO_PROXY: uma lista separada por vírgulas de nomes de host, endereços IP ou faixas CIDR que devem ignorar o proxy. Exemplo: localhost,127.0.0.1,*.local,192.168.0.0/24.

Essas variáveis diferenciam maiúsculas de minúsculas em alguns contextos (por exemplo, o wget costuma usar http_proxy em minúsculas, enquanto outros preferem HTTP_PROXY em maiúsculas). É prática comum definir as versões em maiúsculas e em minúsculas para maior compatibilidade.

Configuração temporária na sessão do shell

Para definir as variáveis de proxy na sessão atual do shell e em todos os processos iniciados a partir dela:

export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"

# Para compatibilidade, defina também as versões em minúsculas
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Substitua proxy.example.com:8080 pelo endereço e pela porta do seu servidor proxy. Se for necessária autenticação, inclua as credenciais: http://user:[email protected]:8080.

Configuração persistente por usuário

Para que as configurações de proxy persistam entre as sessões de login do usuário, adicione os comandos export ao arquivo de perfil do shell do usuário.

  • Bash: ~/.bashrc ou ~/.profile
  • Zsh: ~/.zshrc

Exemplo para ~/.bashrc:

# Configurações de proxy
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Após modificar, carregue o arquivo ou saia e entre novamente: source ~/.bashrc.

Configuração persistente em todo o sistema

Para configurações de proxy válidas em todo o sistema, que afetam todos os usuários e alguns processos do sistema (embora não diretamente todos os serviços do Systemd), use /etc/environment ou arquivos em /etc/profile.d/.

/etc/environment

Este arquivo é lido pelo PAM (Pluggable Authentication Modules) no login, para todos os serviços e aplicações iniciados por um shell de login. Ele só aceita a sintaxe KEY="value", sem export.

HTTP_PROXY="http://proxy.example.com:8080"
HTTPS_PROXY="http://proxy.example.com:8080"
FTP_PROXY="http://proxy.example.com:8080"
NO_PROXY="localhost,127.0.0.1,.example.com"
http_proxy="http://proxy.example.com:8080"
https_proxy="http://proxy.example.com:8080"
ftp_proxy="http://proxy.example.com:8080"
no_proxy="localhost,127.0.0.1,.example.com"

Alterações em /etc/environment normalmente exigem reinicialização ou novo login para que as novas sessões as reconheçam.

/etc/profile.d/

Scripts colocados em /etc/profile.d/ são carregados pelos shells de login. Isso é adequado para definir variáveis de ambiente que exigem lógica ou instruções export. Crie um novo arquivo, por exemplo /etc/profile.d/proxy.sh:

#!/bin/bash
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Certifique-se de que o script seja executável: sudo chmod +x /etc/profile.d/proxy.sh.

sudo e variáveis de proxy

Ao usar sudo, as variáveis de ambiente costumam ser redefinidas por motivos de segurança. Para preservar as configurações de proxy em comandos executados com sudo:

  1. Use sudo -E: isso preserva as variáveis de ambiente atuais.
    bash sudo -E apt update
  2. Configure o sudoers: edite /etc/sudoers com sudo visudo e adicione/modifique env_keep.
    Defaults env_keep += "HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY http_proxy https_proxy ftp_proxy no_proxy"
    Essa abordagem geralmente é mais segura que sudo -E para configurações persistentes do sistema.

APT (Advanced Package Tool)

O APT, gerenciador de pacotes usado pelas distribuições baseadas em Debian (por exemplo, Ubuntu), exige sua própria configuração de proxy, separada das variáveis de ambiente do shell.

Arquivo de configuração de proxy do APT

As configurações de proxy do APT são definidas em arquivos de configuração dentro de /etc/apt/apt.conf.d/. Crie um novo arquivo, por exemplo /etc/apt/apt.conf.d/01proxy, com o seguinte conteúdo:

Acquire::http::Proxy "http://proxy.example.com:8080/";
Acquire::https::Proxy "http://proxy.example.com:8080/";
# Acquire::ftp::Proxy "ftp://proxy.example.com:8080/"; # Descomente se necessário

Substitua proxy.example.com:8080 pelo endereço e pela porta do seu servidor proxy.

Se o proxy exigir autenticação:

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

Para hosts que devem ignorar o proxy do APT, use Acquire::NoProxy:

Acquire::NoProxy "localhost,127.0.0.1,archive.ubuntu.com";

Isso é menos usado que o NO_PROXY global, mas pode ser específico para o APT.

Depois de criar ou modificar o arquivo, o APT passará a usar essas configurações automaticamente nas operações seguintes (por exemplo, apt update, apt install). Não é necessário reiniciar nenhum serviço.

Serviços do Systemd

O Systemd gerencia serviços e aplicações do sistema. Os serviços iniciados pelo Systemd não herdam automaticamente as variáveis de ambiente de proxy definidas nos perfis de shell ou em /etc/environment. Cada unidade do Systemd que precisa de acesso via proxy deve ser configurada explicitamente.

Proxy para um serviço específico do Systemd

Para configurar as definições de proxy de um serviço individual do Systemd, crie um arquivo de override. Esse é o método recomendado para evitar a modificação direta dos arquivos de unidade originais, que podem ser sobrescritos durante atualizações de pacotes.

  1. Crie um diretório de override:
    bash sudo systemctl edit <service_name>
    Esse comando abre um editor para /etc/systemd/system/<service_name>.service.d/override.conf.

  2. Adicione as variáveis de ambiente de proxy:
    Dentro do editor, adicione a seção [Service] e as diretivas Environment:

    ini [Service] Environment="HTTP_PROXY=http://proxy.example.com:8080" \ "HTTPS_PROXY=http://proxy.example.com:8080" \ "NO_PROXY=localhost,127.0.0.1" Environment="http_proxy=http://proxy.example.com:8080" \ "https_proxy=http://proxy.example.com:8080" \ "no_proxy=localhost,127.0.0.1"
    Cada diretiva Environment pode conter várias variáveis, separadas por espaços dentro das aspas, ou você pode usar várias linhas Environment. A \ serve para continuação de linha no arquivo de override.

  3. Salve e saia: salve o arquivo. O Systemd recarregará o daemon automaticamente e perguntará se deseja reiniciar o serviço. Confirme a reinicialização. Se não for solicitado, recarregue e reinicie manualmente:
    bash sudo systemctl daemon-reload sudo systemctl restart <service_name>

Configuração global de proxy do Systemd

Para serviços que não têm configurações de proxy específicas ou para definir um padrão em todo o sistema, configure o proxy no ambiente global do Systemd. Isso afeta todos os serviços que não sobrescreverem explicitamente essas variáveis.

  1. Crie um diretório para configurações drop-in:
    bash sudo mkdir -p /etc/systemd/system.conf.d/

  2. Crie um arquivo de configuração de proxy:
    bash sudo nano /etc/systemd/system.conf.d/proxy.conf

  3. Adicione as variáveis de ambiente de proxy:
    ini [Manager] DefaultEnvironment="HTTP_PROXY=http://proxy.example.com:8080" DefaultEnvironment="HTTPS_PROXY=http://proxy.example.com:8080" DefaultEnvironment="NO_PROXY=localhost,127.0.0.1" DefaultEnvironment="http_proxy=http://proxy.example.com:8080" DefaultEnvironment="https_proxy=http://proxy.example.com:8080" DefaultEnvironment="no_proxy=localhost,127.0.0.1"

  4. Recarregue o daemon do Systemd e reinicie os serviços:
    bash sudo systemctl daemon-reload sudo systemctl restart --all # Use com cautela, reinicia todos os serviços de usuário e de sistema
    Reiniciar o sistema por completo costuma ser a forma mais segura de garantir que todos os serviços assumam essas mudanças globais.

Verificação

Após configurar as definições de proxy, verifique se estão funcionando:

  • Variáveis de ambiente:
    bash env | grep -i proxy
  • APT:
    bash apt config dump | grep -i proxy
    Tente uma atualização: sudo apt update.
  • Acesso geral à rede:
    bash curl -v http://ifconfig.me
    A saída deve mostrar o endereço IP do servidor proxy se o tráfego for roteado por ele, ou o seu IP externo se o NO_PROXY estiver em vigor.
  • Serviço do Systemd: verifique o status e os logs do serviço em busca de problemas de conectividade.
    bash sudo systemctl status <service_name> sudo journalctl -u <service_name>
    Você também pode inspecionar o ambiente do processo de um serviço em execução. Descubra o PID do serviço e então:
    bash sudo cat /proc/<PID>/environ | tr '\0' '\n' | grep -i proxy

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

Método Escopo Persistência Componentes afetados Exemplo de configuração
Ambiente de shell (temporário) Sessão atual do shell Não Comandos iniciados no shell atual export HTTP_PROXY="..."
Perfil de usuário (~/.bashrc) Sessões de login do usuário Sim Aplicações do usuário, comandos de shell Adicione linhas export ao ~/.bashrc
Todo o sistema (/etc/environment) Todas as sessões de login, alguns processos do sistema Sim Shells de login, algumas aplicações (não Systemd) HTTP_PROXY="..." em /etc/environment
Todo o sistema (/etc/profile.d/) Todos os shells de login Sim Shells de login, aplicações iniciadas por eles Script com linhas export em /etc/profile.d/
APT (/etc/apt/apt.conf.d/) Apenas o gerenciador de pacotes APT Sim apt, apt-get, aptitude Acquire::http::Proxy "..."; em 01proxy
Override de serviço do Systemd (override.conf) Unidade específica do Systemd Sim Um serviço do Systemd Environment="..." em /etc/systemd/system/<service>.service.d/override.conf
Systemd global (system.conf.d/) Todos os serviços do Systemd (padrão) Sim Todos os serviços do Systemd, salvo sobrescrita DefaultEnvironment="..." em /etc/systemd/system.conf.d/proxy.conf
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.