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 installtrava 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:
- Para GitHub — proxy residencial estático dos EUA ou Alemanha. Um IP, sempre o mesmo.
- Para npm/pip/Docker — proxy de data center com boa largura de banda. A velocidade é mais importante que a reputação do IP.
- 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.
```