O GitHub bloqueou o acesso para usuários do Irã em 2019 a pedido da OFAC — o regulador americano que controla a conformidade com as sanções. Desde então, os desenvolvedores iranianos enfrentam a mesma situação: repositórios indisponíveis, push e pull não passam, e a conta pode ser congelada a qualquer momento. No entanto, o trabalho não para — as equipes continuam a fazer commits, implantar e participar de projetos de código aberto. Neste artigo, analisamos o que realmente funciona em 2024–2025, quais proxies são adequados para o GitHub e como configurá-los corretamente sem perda de velocidade.
Por que o GitHub bloqueia o Irã: sanções e implementação técnica
Em julho de 2019, o GitHub começou a restringir o acesso para usuários do Irã, Crimea, Cuba, Síria e Coreia do Norte. A razão são as exigências da OFAC (Office of Foreign Assets Control) no âmbito da legislação de sanções dos EUA. A Microsoft, que possui o GitHub desde 2018, é obrigada a cumprir essas restrições como uma empresa americana.
Tecnicamente, o bloqueio funciona em vários níveis:
- Geobloqueio por IP: O GitHub determina o país pelo endereço IP e bloqueia solicitações da faixa de endereços iranianos (blocos AS pertencentes a provedores iranianos).
- Congelamento de contas: Contas registradas com IPs iranianos ou com a indicação do Irã no perfil podem ser colocadas em modo somente leitura ou completamente congeladas.
- Bloqueio de repositórios privados: Repositórios públicos estão parcialmente disponíveis para leitura, mas os privados estão completamente fechados.
- Restrições do GitHub Actions e Packages: Pipelines de CI/CD e registros de pacotes também estão indisponíveis de regiões bloqueadas.
O próprio GitHub já declarou várias vezes que é contra essas restrições e faz lobby por flexibilizações junto aos reguladores. Em 2019, a empresa obteve permissão para fornecer acesso gratuito a repositórios públicos para desenvolvedores iranianos, mas o bloqueio total ainda não foi removido.
⚠️ É importante entender: O bloqueio é direcionado contra organizações e estruturas governamentais sob sanções, e não contra desenvolvedores individuais. A maioria dos programadores iranianos trabalha em equipes internacionais e não está pessoalmente sujeita a sanções — mas tecnicamente o sistema bloqueia todos por IP.
É por isso que a solução do problema está na mudança de endereço IP — essa é a única maneira técnica de contornar o geobloqueio. Vamos analisar quais ferramentas são adequadas para isso.
O que realmente funciona: proxies, VPNs e soluções alternativas
Os desenvolvedores iranianos utilizam várias abordagens. Cada uma tem seus prós e contras — vamos analisá-las honestamente, sem marketing.
1. Proxies residenciais
Proxies residenciais utilizam endereços IP reais de usuários domésticos de outros países — Alemanha, Países Baixos, EUA, Turquia. Do ponto de vista do GitHub, essa solicitação parece ser de um usuário comum de um país permitido. Esta é a opção mais confiável para trabalho contínuo: risco mínimo de bloqueio do próprio proxy, alta estabilidade.
O ponto negativo é que a velocidade é inferior à dos proxies de data center, e o custo é mais alto. Para operações do Git (push/pull/clone), isso geralmente não é crítico: os repositórios pesam megabytes, não gigabytes.
2. Proxies de data center
Proxies de data center funcionam mais rápido e custam menos. São adequados para clonar grandes repositórios, baixar artefatos, trabalhar com a API do GitHub. No entanto, os IPs de data center são mais fáceis de identificar como proxies — algumas faixas já estão na lista de bloqueio do GitHub. Recomendamos usar proxies de data center de locais europeus (DE, NL, FR) — eles raramente são filtrados.
3. VPN
VPN é a ferramenta mais popular entre os usuários iranianos. Funciona em nível de todo o sistema operacional, não requer configuração em cada aplicativo separadamente. Pontos negativos: muitos servidores VPN já estão bloqueados pelo GitHub (especialmente os gratuitos populares), a velocidade é instável, e em caso de desconexão, o tráfego pode vazar através do IP iraniano.
4. Tor
O Tor funciona tecnicamente, mas o GitHub bloqueia ativamente os nós de saída do Tor. A velocidade é extremamente baixa — clonar até mesmo um pequeno repositório pode levar horas. Para acesso episódico à interface da web, pode ser adequado, mas para desenvolvimento regular, não.
5. Túneis SSH através de um servidor em outro país
Se você possui um VPS na Europa ou nos EUA, pode criar um proxy SOCKS5 através de um túnel SSH. Isso é tecnicamente confiável e gratuito (se você tiver um servidor), mas requer conhecimentos básicos de Linux. Mais detalhes sobre a configuração estão na seção sobre Git.
Resumo sobre as ferramentas:
Para trabalho diário com o GitHub, a combinação ideal é: proxy residencial ou de data center + configuração no Git em nível de configuração. Isso proporciona estabilidade sem afetar todo o tráfego do sistema.
Quais tipos de proxies são adequados para o GitHub: tabela comparativa
Vamos analisar todas as opções em uma tabela, para facilitar a escolha de acordo com sua situação:
| Tipo | Velocidade | Confiabilidade | Risco de bloqueio do GitHub | Melhor para |
|---|---|---|---|---|
| Proxies residenciais | Média | Alta | Mínimo | Trabalho diário, push/pull, interface da web |
| Proxies de data center | Alta | Média | Médio | Clonagem de grandes repositórios, API do GitHub, CI/CD |
| Proxies móveis | Média | Muito alta | Muito baixo | Trabalho com a conta, se já estiver sob suspeita |
| VPN (paga) | Média | Média | Médio | Acesso geral à internet + GitHub |
| Túnel SSH (VPS próprio) | Alta | Alta | Baixo | Desenvolvedores com VPS na Europa/EUA |
| Tor | Muito baixa | Baixa | Alta | Não recomendado para trabalho com Git |
Se sua conta já recebeu avisos ou foi temporariamente congelada, vale a pena considerar proxies móveis — eles utilizam IPs de operadoras móveis, que o GitHub praticamente nunca bloqueia, pois um único IP móvel atende milhares de usuários.
Como configurar proxies no Git, terminal e IDE: guia passo a passo
A principal vantagem de configurar proxies diretamente no Git (e não em nível de sistema ou VPN) é que você controla qual tráfego passa pelo proxy. As solicitações locais permanecem diretas, apenas o tráfego do GitHub é roteado através do IP externo.
Configuração de proxy HTTPS no Git (globalmente)
Abra o terminal e execute os seguintes comandos, substituindo HOST e PORT pelos dados do seu proxy:
# Para proxies HTTP/HTTPS: git config --global http.proxy http://HOST:PORT # Para proxies SOCKS5 (recomendado): git config --global http.proxy socks5://HOST:PORT # Se o proxy requer autenticação (login + senha): git config --global http.proxy socks5://USERNAME:PASSWORD@HOST:PORT # Aplicar apenas para github.com (não afetar outros repositórios): git config --global http.https://github.com.proxy socks5://HOST:PORT
O último comando é o mais útil: ele aplica o proxy apenas para solicitações ao github.com, sem afetar o GitLab, Bitbucket ou repositórios internos da empresa.
Verificação da configuração
# Ver as configurações atuais do proxy no Git: git config --global --list | grep proxy # Testar a conexão com o GitHub através do proxy: git ls-remote https://github.com/github/gitignore HEAD
Se o comando ls-remote retornou o hash do commit — o proxy está funcionando. Se você receber o erro Connection refused ou Could not resolve host — verifique a precisão de HOST e PORT.
Desativando o proxy (quando não for necessário)
# Remover o proxy global: git config --global --unset http.proxy # Remover o proxy apenas para github.com: git config --global --unset http.https://github.com.proxy
Configuração no VS Code
O VS Code utiliza as configurações de proxy do sistema para o terminal integrado e extensões. Se você configurou o proxy no Git através do terminal, o terminal integrado do VS Code capturará essas configurações automaticamente. Para proxies HTTP no próprio editor (por exemplo, para instalar extensões), abra:
Arquivo → Preferências → Configurações → buscar "proxy" → insira o endereço do proxy no campo http.proxy.
Configuração através de túnel SSH (se você tiver um VPS)
Se você possui um VPS na Europa ou nos EUA, pode criar um proxy SOCKS5 local através de SSH com um único comando:
# Criar um proxy SOCKS5 na porta local 1080 através de SSH: ssh -D 1080 -C -N user@your-vps-ip # Em seguida, no Git, especifique este proxy local: git config --global http.proxy socks5://127.0.0.1:1080
A flag -D 1080 abre um proxy SOCKS5 na porta 1080, -C ativa a compressão, -N instrui o SSH a não executar comandos — apenas manter o túnel.
SSH vs HTTPS: o que funciona melhor através de proxies para GitHub
Esta é uma das perguntas mais frequentes: qual protocolo usar para trabalhar com o GitHub através de proxies — SSH (porta 22 ou 443) ou HTTPS (porta 443)?
HTTPS através de proxy
Conexões HTTPS são fáceis de proxy — os comandos git config http.proxy, que analisamos acima, funcionam precisamente para HTTPS. Ponto negativo: a cada push/pull o Git solicita login e senha (ou Token de Acesso Pessoal). A solução é salvar o token no armazenamento de credenciais:
# Ativar o armazenamento do token no keychain do sistema: git config --global credential.helper store # Após o primeiro push bem-sucedido, o token será salvo automaticamente
SSH através de proxy (ProxyCommand)
Conexões SSH não podem ser proxy através do padrão http.proxy no Git — é necessária uma configuração separada em ~/.ssh/config. Adicione o seguinte bloco:
Host github.com
HostName ssh.github.com
User git
Port 443
ProxyCommand nc -X 5 -x HOST:PORT %h %p
Aqui ssh.github.com:443 é um endpoint SSH especial do GitHub que opera na porta 443 (HTTPS), o que ajuda a contornar bloqueios na porta 22. nc -X 5 utiliza proxy SOCKS5.
Você pode verificar a conexão SSH com o comando:
ssh -T [email protected] # Resposta esperada: Hi username! You've successfully authenticated...
Recomendação:
Para a maioria dos desenvolvedores, é mais fácil configurar HTTPS + proxy SOCKS5 na configuração do Git. SSH através de ProxyCommand requer a instalação da ferramenta netcat e uma configuração um pouco mais complexa, mas oferece conveniência ao trabalhar com chaves SSH sem a necessidade de inserir o token.
Riscos para a conta e como minimizá-los
O uso de proxies para o GitHub não é apenas uma tarefa técnica, mas também uma questão de segurança da conta. Uma configuração inadequada pode chamar a atenção para a conta ou criar novos problemas.
Risco 1: Mudança constante de IP
Se você usa proxies rotativos (o IP muda a cada solicitação ou a cada poucos minutos), o GitHub pode registrar atividades suspeitas: uma conta acessa de dezenas de IPs diferentes em um curto período de tempo. Isso é um gatilho para verificação de segurança e potencial bloqueio.
Solução: Use proxies estáticos (sticky) com IP fixo ou proxies de sessão com tempo de sessão prolongado (a partir de 24 horas). Para o GitHub, a rotação não é necessária — a estabilidade é o que importa.
Risco 2: Uso de IPs de data center bloqueados
Algumas faixas de IP de provedores populares (AWS, DigitalOcean, Vultr) já estão na lista de bloqueio ou atraem atenção excessiva. O GitHub não os bloqueia diretamente, mas pode solicitar verificação adicional.
Solução: Escolha data centers europeus (DE, NL, CH) — eles raramente entram em listas de bloqueio. Antes de usar regularmente, verifique o IP através de ipinfo.io ou scamalytics.com.
Risco 3: Dados iranianos no perfil
Se o seu perfil do GitHub indicar o Irã (no campo Localização), a conta tem maior probabilidade de ser sujeita a restrições, independentemente do IP. Isso não significa que você deve ocultar sua origem — mas é importante entender que isso é um fator adicional.
Risco 4: Trabalho com repositórios organizacionais
Se sua organização no GitHub estiver registrada como uma empresa iraniana ou tiver administradores iranianos, as restrições podem ser mais severas — até o congelamento de toda a organização. Nesse caso, o proxy ajuda para a conta pessoal, mas não resolve o problema em nível organizacional.
O que fazer se a conta já estiver congelada
O GitHub fornece um processo oficial de descongelamento de conta para desenvolvedores individuais. Escreva para [email protected] explicando a situação. No e-mail, indique:
- Que você é um desenvolvedor individual, não associado a organizações sancionadas
- Que sua atividade é desenvolvimento de software open-source ou comercial
- Links para seus repositórios públicos e atividades
Com base na experiência da comunidade, o GitHub restaura o acesso para a maioria dos desenvolvedores individuais em 1 a 4 semanas.
Checklist: verificação rápida da configuração do proxy para GitHub
Use este checklist para garantir que tudo esteja configurado corretamente antes de começar a trabalhar:
✅ Antes da configuração
- Obtenha os dados do proxy: HOST, PORT, tipo (HTTP/SOCKS5), login/senha
- Verifique o IP do proxy em
ipinfo.io— o país não deve ser o Irã - Certifique-se de que o IP não está na lista de bloqueio: verifique em
scamalytics.com - Escolha um IP estático (não rotativo) para trabalho contínuo
✅ Configuração do Git
- Executou o comando
git config --global http.proxy - Proxy aplicado apenas para github.com (não globalmente) — se precisar de configuração pontual
- Configuração do credential.helper para armazenar o token (para HTTPS)
- Para SSH: bloco adicionado em
~/.ssh/configcom ProxyCommand
✅ Verificação de funcionamento
- O comando
git ls-remote https://github.com/github/gitignore HEADretorna um hash - O comando
ssh -T [email protected]retorna uma saudação (para SSH) - Push para um repositório de teste foi bem-sucedido
- Sem erros
403 ForbiddenouRepository access blocked
✅ Segurança da conta
- Uso de IP estático (não rotativo)
- Autenticação de dois fatores ativada na conta do GitHub
- Token de Acesso Pessoal configurado com as permissões mínimas necessárias (apenas repo)
- Token tem prazo de validade (não é vitalício)
Conclusão
As restrições sancionatórias do GitHub são uma realidade desagradável para os desenvolvedores iranianos, mas não são um beco sem saída. A solução técnica existe e funciona: proxies com IPs estrangeiros em conjunto com a configuração correta do Git permitem o desenvolvimento completo — fazer push de commits, clonar repositórios, trabalhar com GitHub Actions e participar de projetos de código aberto.
Principais conclusões do artigo:
- Para trabalho diário, escolha proxies residenciais ou de data center estáticos da Europa — IPs estáveis sem rotação.
- Configure proxies no Git config, e não em nível de sistema — isso proporciona controle pontual sem afetar todo o tráfego.
- Se a conta já estiver sob suspeita — use IPs móveis, eles praticamente nunca entram em bloqueios.
- Se a conta estiver congelada — escreva para [email protected], o GitHub restaura o acesso para desenvolvedores individuais.
- Use SSH através da porta 443 (ssh.github.com) — isso contorna a maioria dos bloqueios em nível de provedor.
Se você está procurando uma solução confiável para trabalho contínuo com o GitHub, recomendamos considerar proxies residenciais — eles utilizam IPs reais de usuários domésticos de países permitidos, atraem minimamente a atenção dos sistemas de proteção e garantem uma conexão estável para operações do Git. Para tarefas de alta carga (clonagem de grandes repositórios, pipelines de CI/CD), uma boa alternativa são os proxies de data center — eles são mais rápidos e econômicos ao trabalhar com grandes volumes de dados.
```