Voltar ao blog

Proxies para desenvolvedores iranianos: como acessar GitHub, npm e PyPI sob sanções em 2024

Desenvolvedores iranianos enfrentam bloqueios no GitHub, npm e PyPI devido a sanções. Explicamos como contornar as restrições por meio de proxies e continuar trabalhando sem interrupções.

📅10 de julho de 2026
```html

Desenvolvedores iranianos enfrentam restrições severas: o GitHub bloqueia contas, pacotes npm não são instalados, o PyPI retorna erro de conexão. Tudo isso é consequência das sanções que isolam países inteiros da infraestrutura básica de desenvolvimento. Se você trabalha do Irã ou contrata especialistas iranianos, este artigo lhe dará uma solução concreta — sem enrolação e teoria.

O que exatamente está sendo bloqueado e por quê

As sanções dos EUA contra o Irã não se limitam apenas a operações financeiras — elas também afetam serviços tecnológicos. Empresas sob jurisdição dos EUA (o que inclui praticamente toda a pilha de desenvolvimento moderno) são obrigadas a restringir o acesso a usuários de países sancionados. Como resultado, os desenvolvedores iranianos enfrentam os seguintes problemas:

  • GitHub — bloqueia contas, repositórios se tornam inacessíveis, Actions não são executadas, Copilot não funciona.
  • npm (npmjs.com) — ao tentar instalar pacotes através de npm install, ocorrem erros de conexão ou uma recusa explícita de acesso.
  • PyPI (pypi.org)pip install trava ou retorna erro 403.
  • Docker Hub — pull de imagens está bloqueado.
  • Cloudflare, AWS, Azure, Google Cloud — parte dos serviços está indisponível ou funciona de forma instável.
  • Stack Overflow, JetBrains, VS Code Marketplace — bloqueios periódicos a nível de IP.

O bloqueio ocorre a nível de endereço IP: se o seu IP pertence a um provedor iraniano (números AS IRANCELL, Shatel, MCI e outros), a solicitação é automaticamente rejeitada antes mesmo da verificação da conta. É por isso que um VPN ou proxy com IP de outro país não é uma manobra de contorno, mas a única maneira eficaz de acessar a infraestrutura de desenvolvimento.

É importante entender:

Proxies e VPNs resolvem o problema em diferentes níveis. A VPN redireciona todo o tráfego do sistema — isso é conveniente para o navegador, mas inconveniente para ferramentas de linha de comando (git, npm, pip), onde é necessária uma configuração específica. O proxy permite configurar a contorna das sanções apenas para uma ferramenta específica, sem afetar o restante do tráfego.

Qual tipo de proxy é adequado para desenvolvimento

Para as tarefas do desenvolvedor — trabalho com repositórios, instalação de pacotes, CI/CD — a estabilidade da conexão, velocidade e limpeza do IP são importantes. Vamos analisar três tipos principais de proxies e como eles se adequam a cenários específicos.

Proxies residenciais

Proxies residenciais utilizam IPs reais de usuários domésticos de diferentes países. Para o GitHub, isso é criticamente importante: a plataforma analisa não apenas a geolocalização do IP, mas também sua reputação. Um IP de data center levanta suspeitas, enquanto um IP doméstico americano ou europeu é visto como um usuário comum. Proxies residenciais são a opção mais confiável para trabalhar com contas do GitHub de forma contínua.

Proxies de data center

Proxies de data center — rápidos e baratos. Eles são adequados para instalação de pacotes através de npm e pip: PyPI e npmjs.com não verificam a reputação do IP tão rigorosamente quanto o GitHub. Se você precisa apenas baixar dependências em um pipeline de CI/CD, um proxy de data center pode lidar com a tarefa e custar menos.

Proxies móveis

Proxies móveis utilizam IPs de operadores móveis (4G/5G). Este é o tipo de IP mais "limpo" do ponto de vista dos sistemas antifraude: um único IP móvel pode estar associado a milhares de usuários reais, portanto bloqueá-lo não é vantajoso. Proxies móveis são relevantes se você já teve problemas com o bloqueio da conta do GitHub e deseja minimizar o risco de um novo bloqueio.

Configuração de proxy para GitHub

O GitHub utiliza dois protocolos para trabalhar com repositórios: HTTPS e SSH. A configuração do proxy é feita de forma diferente para cada um deles. Vamos considerar ambas as opções.

Proxy para git via HTTPS

Este é o método mais comum de trabalhar com o GitHub. A configuração é feita através da configuração do git. Abra o terminal e execute:

# Configuração de proxy HTTP para git (substitua host, port, user, password pelos seus dados)
git config --global http.proxy http://user:password@proxy-host:port
git config --global https.proxy http://user:password@proxy-host:port

# Verificação das configurações
git config --global --get http.proxy

# Se o proxy não requer autenticação:
git config --global http.proxy http://proxy-host:port

Após essa configuração, todos os comandos git clone, git push, git pull passarão pelo proxy. Se você precisar configurar o proxy apenas para o GitHub, e não para todos os repositórios:

# Proxy apenas para github.com
git config --global http.https://github.com.proxy http://user:password@proxy-host:port

Proxy para git via SSH

A conexão SSH com o GitHub funciona através da porta 22 (ou 443 como alternativa). Para proxy de tráfego SSH, utiliza-se a ferramenta nc (netcat) ou connect. Edite o arquivo ~/.ssh/config:

Host github.com
  HostName github.com
  User git
  ProxyCommand nc -X connect -x proxy-host:port %h %p
  # Ou para SOCKS5:
  # ProxyCommand nc -X 5 -x proxy-host:port %h %p

Se você estiver usando Windows, em vez de nc, pode usar connect.exe ou configurar ProxyCommand através do PuTTY. No macOS e Linux, o netcat geralmente já está instalado.

Configuração de variáveis de ambiente

Uma alternativa é usar variáveis de ambiente. Elas funcionam não apenas para git, mas também para muitas outras ferramentas de linha de comando:

# Linux / macOS — adicione em ~/.bashrc ou ~/.zshrc
export HTTP_PROXY="http://user:password@proxy-host:port"
export HTTPS_PROXY="http://user:password@proxy-host:port"
export NO_PROXY="localhost,127.0.0.1"

# Windows (PowerShell)
$env:HTTP_PROXY = "http://user:password@proxy-host:port"
$env:HTTPS_PROXY = "http://user:password@proxy-host:port"

Configuração de proxy para npm e Node.js

O npm tem suporte embutido para proxies. A configuração leva literalmente um comando e se aplica imediatamente a todas as operações de instalação de pacotes. Isso é especialmente importante para desenvolvedores iranianos que trabalham com a pilha JavaScript/TypeScript: React, Vue, Angular, Next.js — todos eles usam ativamente npmjs.com.

# Configuração de proxy para npm
npm config set proxy http://user:password@proxy-host:port
npm config set https-proxy http://user:password@proxy-host:port

# Verificação da configuração atual
npm config get proxy
npm config get https-proxy

# Desativar o proxy (se precisar retornar à conexão direta)
npm config delete proxy
npm config delete https-proxy

As configurações são salvas no arquivo ~/.npmrc. Você também pode editar este arquivo diretamente:

# Conteúdo de ~/.npmrc
proxy=http://user:password@proxy-host:port
https-proxy=http://user:password@proxy-host:port
strict-ssl=false

Yarn e pnpm

Se você usa Yarn ou pnpm, a configuração é semelhante:

# Yarn v1
yarn config set proxy http://user:password@proxy-host:port
yarn config set https-proxy http://user:password@proxy-host:port

# Yarn v2/v3 (Berry) — edite .yarnrc.yml
# httpProxy: "http://user:password@proxy-host:port"
# httpsProxy: "http://user:password@proxy-host:port"

# pnpm
pnpm config set proxy http://user:password@proxy-host:port
pnpm config set https-proxy http://user:password@proxy-host:port

Dica para CI/CD:

Se você usa GitHub Actions, GitLab CI ou outro sistema, adicione as variáveis HTTP_PROXY e HTTPS_PROXY nos segredos do projeto. Isso permitirá que todas as etapas do pipeline utilizem automaticamente o proxy.

Configuração de proxy para PyPI e pip

Desenvolvedores Python do Irã enfrentam bloqueios no PyPI com bastante frequência: o pip utiliza HTTPS para baixar pacotes, e se o IP estiver bloqueado, a instalação simplesmente trava ou retorna um erro. Existem várias maneiras de configurar um proxy para o pip.

Método 1: Flag --proxy na instalação

# Instalação única através do proxy
pip install requests --proxy http://user:password@proxy-host:port

# Para pip3
pip3 install django --proxy http://user:password@proxy-host:port

Método 2: Arquivo de configuração pip.conf

Para não precisar especificar o proxy a cada comando, adicione as configurações no arquivo de configuração do pip:

# Linux/macOS: ~/.config/pip/pip.conf
# Windows: %APPDATA%\pip\pip.ini

[global]
proxy = http://user:password@proxy-host:port
trusted-host = pypi.org
               pypi.python.org
               files.pythonhosted.org

Método 3: Variáveis de ambiente

# O pip automaticamente reconhece as variáveis de ambiente padrão
export HTTP_PROXY="http://user:password@proxy-host:port"
export HTTPS_PROXY="http://user:password@proxy-host:port"

# Após isso, o pip install comum funciona através do proxy
pip install numpy pandas scikit-learn

Poetry e Conda

Se você usa Poetry para gerenciar dependências, a configuração do proxy é feita através das variáveis de ambiente — o Poetry herda HTTP_PROXY e HTTPS_PROXY automaticamente. Para o Conda, adicione ao arquivo ~/.condarc:

# ~/.condarc
proxy_servers:
  http: http://user:password@proxy-host:port
  https: http://user:password@proxy-host:port

Outras ferramentas de desenvolvedor: Docker, Composer, Maven

Os bloqueios afetam não apenas o GitHub, npm e PyPI. Vamos considerar a configuração de proxies para outras ferramentas populares de desenvolvimento que também podem estar indisponíveis do Irã.

Docker

O Docker Hub está bloqueado para IPs iranianos. Para executar docker pull, configure o proxy na configuração do daemon do Docker:

# Linux: crie ou edite /etc/docker/daemon.json
{
  "proxies": {
    "http-proxy": "http://user:password@proxy-host:port",
    "https-proxy": "http://user:password@proxy-host:port",
    "no-proxy": "localhost,127.0.0.1"
  }
}

# Reinicie o Docker
sudo systemctl restart docker

No macOS e Windows, a configuração do proxy para o Docker Desktop é feita através da interface gráfica: Configurações → Recursos → Proxies.

Composer (PHP)

# O Composer utiliza variáveis de ambiente
export HTTP_PROXY="http://user:password@proxy-host:port"
export HTTPS_PROXY="http://user:password@proxy-host:port"

# Ou através da configuração do Composer
composer config --global http-basic.repo.packagist.org user password

Maven (Java)

<!-- ~/.m2/settings.xml -->
<settings>
  <proxies>
    <proxy>
      <id>meu-proxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy-host</host>
      <port>port</port>
      <username>user</username>
      <password>password</password>
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

Módulos Go

# Go utiliza GOPROXY para baixar módulos
# Você pode especificar um espelho ou configurar um proxy do sistema
export GOPROXY="https://goproxy.io,direct"
export HTTP_PROXY="http://user:password@proxy-host:port"
export HTTPS_PROXY="http://user:password@proxy-host:port"

Segurança: como não perder a conta no GitHub

O uso de proxies resolve o problema de acesso, mas cria um novo: se você entrar no GitHub de diferentes endereços IP (hoje do Irã, amanhã através de um proxy americano, depois de amanhã através de um europeu), o sistema de segurança do GitHub pode bloquear a conta como suspeita. Veja como evitar isso.

Regra da constância do IP

Use o mesmo servidor proxy para trabalhar com o GitHub. Se o seu provedor de proxy muda o IP a cada conexão (proxies rotativos), isso pode levantar suspeitas. Para o GitHub, os proxies estáticos são os mais adequados — um IP que está vinculado a você por um longo período.

  • Proxy residencial estático — um IP doméstico dos EUA ou Europa, vinculado a você. Máxima confiabilidade para o GitHub.
  • Proxy rotativo — adequado para npm/pip (download de pacotes), mas não para login na conta do GitHub.
  • Não misture conexão direta e proxy: ou sempre através do proxy, ou nunca.

Autenticação de dois fatores

Ative a 2FA no GitHub — isso protegerá sua conta mesmo que alguém capture suas credenciais. Use um aplicativo autenticador (Google Authenticator, Authy), em vez de SMS — o SMS pode estar indisponível no Irã ou funcionar de forma não confiável.

Chaves SSH em vez de senhas

Configure chaves SSH para trabalhar com o GitHub em vez de autenticação HTTPS por senha. As chaves SSH estão vinculadas ao dispositivo, e não ao IP, portanto, a mudança de IP ao usar SSH é menos crítica para o sistema de segurança do GitHub.

Comparação de tipos de proxy para desenvolvedores

Vamos resumir em uma tabela: qual tipo de proxy é mais adequado para tarefas específicas de um desenvolvedor iraniano.

Tarefa Residencial Data Center Móvel
GitHub (conta, push/pull) ✅ Excelente ⚠️ Risco de bloqueio ✅ Excelente
npm install (instalação de pacotes) ✅ Bom ✅ Excelente ✅ Bom
pip install (PyPI) ✅ Bom ✅ Excelente ✅ Bom
Docker Hub (pull de imagens) ✅ Bom ✅ Bom ⚠️ Caro
Pipelines CI/CD (requisições em massa) ⚠️ Caro ✅ Excelente ❌ Não adequado
Velocidade de conexão Média Alta Média
Risco de bloqueio de IP Baixo Médio Muito baixo
Custo Médio Baixo Alto

Estratégia recomendada

Esquema ideal para o desenvolvedor:

  1. Para GitHub — proxy residencial estático dos EUA ou Alemanha. Um IP, sempre o mesmo.
  2. Para npm/pip/Docker — proxy de data center com boa largura de banda. A velocidade é mais importante que a reputação do IP.
  3. Para navegador e serviços web — o mesmo proxy residencial ou um separado.

Protocolos: HTTP vs SOCKS5

A maioria das ferramentas de desenvolvimento (git, npm, pip) suporta proxies HTTP/HTTPS. SOCKS5 é mais versátil — ele opera no nível TCP e é adequado para qualquer protocolo, incluindo SSH. Se o seu provedor de proxy suporta SOCKS5, use-o para conexões SSH com o GitHub. Para tráfego HTTP (npm, pip), a diferença é praticamente inexistente.

Conclusão e recomendações

As sanções criam obstáculos reais para desenvolvedores iranianos, mas não tornam o trabalho impossível. Um proxy bem configurado permite trabalhar plenamente com o GitHub, instalar pacotes através do npm e pip, baixar imagens do Docker Hub — sem perder contas e sem bloqueios constantes.

Principais conclusões do artigo:

  • Para trabalhar com o GitHub, use um proxy residencial estático — um IP permanente dos EUA ou Europa.
  • Para instalação de pacotes (npm, pip, Composer), proxies de data center mais baratos com boa velocidade são adequados.
  • Configure o proxy no nível das ferramentas (git config, npm config, pip.conf), e não apenas no nível do sistema.
  • Não misture conexão direta e proxy para uma única conta do GitHub.
  • Ative a 2FA e use chaves SSH para máxima segurança da conta.

Se você está procurando uma solução confiável para trabalhar continuamente com o GitHub e outros serviços bloqueados, recomendamos considerar proxies residenciais — eles oferecem acesso estável através de IPs domésticos reais, que raramente são bloqueados pelo GitHub e outras plataformas.

```