GitHub bloqueó el acceso para usuarios de Irán en 2019 a solicitud de OFAC — el regulador estadounidense que supervisa el cumplimiento de las sanciones. Desde entonces, los desarrolladores iraníes se enfrentan a la misma situación: los repositorios son inaccesibles, los push y pull no se realizan, y la cuenta puede ser congelada en cualquier momento. Sin embargo, el trabajo no se detiene: los equipos continúan haciendo commits, desplegando y participando en proyectos de código abierto. En este artículo analizamos qué realmente funciona en 2024–2025, qué proxies son adecuados para GitHub y cómo configurarlos correctamente sin perder velocidad.
Por qué GitHub bloquea Irán: sanciones y ejecución técnica
En julio de 2019, GitHub comenzó a restringir el acceso para usuarios de Irán, Crimea, Cuba, Siria y Corea del Norte. La razón son los requisitos de OFAC (Oficina de Control de Activos Extranjeros) en el marco de la legislación de sanciones de EE. UU. Microsoft, que posee GitHub desde 2018, está obligada a cumplir con estas restricciones como empresa estadounidense.
Técnicamente, el bloqueo funciona en varios niveles:
- Geobloqueo por IP: GitHub determina el país por la dirección IP y bloquea las solicitudes del rango de direcciones iraníes (bloques AS pertenecientes a proveedores iraníes).
- Congelación de cuentas: Las cuentas registradas desde IP iraníes o que indican Irán en el perfil pueden ser puestas en modo de solo lectura o completamente congeladas.
- Bloqueo de repositorios privados: Los repositorios públicos son parcialmente accesibles para lectura, pero los privados están completamente cerrados.
- Restricciones de GitHub Actions y Packages: Los pipelines de CI/CD y los registros de paquetes también están inaccesibles desde regiones bloqueadas.
Sin embargo, GitHub ha declarado en múltiples ocasiones que se opone a estas restricciones y hace lobby para obtener flexibilizaciones ante los reguladores. En 2019, la empresa logró permiso para proporcionar acceso gratuito a repositorios públicos para desarrolladores iraníes, pero no se ha levantado completamente el bloqueo.
⚠️ Es importante entender: El bloqueo está dirigido contra organizaciones y estructuras gubernamentales bajo sanciones, no contra desarrolladores individuales. La mayoría de los programadores iraníes trabajan en equipos internacionales y no están sujetos a sanciones personalmente — pero técnicamente el sistema bloquea a todos por IP.
Por eso, la solución al problema radica en cambiar la dirección IP — es la única forma de eludir el geobloqueo técnicamente. Analicemos qué herramientas son adecuadas para esto.
Qué realmente funciona: proxies, VPN y soluciones alternativas
Los desarrolladores iraníes utilizan varios enfoques. Cada uno tiene sus pros y contras — los analizaremos honestamente, sin marketing.
1. Proxies residenciales
Los proxies residenciales utilizan direcciones IP reales de usuarios domésticos de otros países — Alemania, Países Bajos, EE. UU., Turquía. Desde el punto de vista de GitHub, tal solicitud parece provenir de un usuario normal de un país permitido. Esta es la opción más confiable para un trabajo constante: riesgo mínimo de bloqueo del proxy mismo, alta estabilidad.
La desventaja es que la velocidad es menor que la de los proxies de centros de datos, y el costo es más alto. Para operaciones de Git (push/pull/clone) esto generalmente no es crítico: los repositorios pesan megabytes, no gigabytes.
2. Proxies de centros de datos
Los proxies de centros de datos funcionan más rápido y son más baratos. Son adecuados para clonar grandes repositorios, descargar artefactos, trabajar con la API de GitHub. Sin embargo, las IP de los centros de datos son más fáciles de identificar como proxies — algunos rangos ya están en listas negras de GitHub. Recomendamos usar proxies de centros de datos de ubicaciones europeas (DE, NL, FR) — son menos propensos a caer en filtros.
3. VPN
La VPN es la herramienta más popular entre los usuarios iraníes. Funciona a nivel del sistema operativo, no requiere configuración en cada aplicación por separado. Desventajas: muchos servidores VPN ya están bloqueados por GitHub (especialmente los gratuitos populares), la velocidad es inestable, y si la conexión se interrumpe, el tráfico puede filtrarse a través de la IP iraní.
4. Tor
Tor funciona técnicamente, pero GitHub bloquea activamente los nodos de salida de Tor. La velocidad es extremadamente baja — clonar incluso un repositorio pequeño puede llevar horas. Para acceso ocasional a la interfaz web puede servir, pero no para desarrollo regular.
5. Túneles SSH a través de un servidor en otro país
Si tienes un VPS en Europa o EE. UU., puedes levantar un proxy SOCKS5 a través de un túnel SSH. Esto es técnicamente confiable y gratuito (si tienes un servidor), pero requiere conocimientos básicos de Linux. Más detalles sobre la configuración se encuentran en la sección sobre Git.
Resumen sobre herramientas:
Para el trabajo diario con GitHub, la combinación óptima es: proxy residencial o de centro de datos + configuración en Git a nivel de configuración. Esto proporciona estabilidad sin afectar todo el tráfico del sistema.
Qué tipos de proxies son adecuados para GitHub: tabla comparativa
Analicemos todas las opciones en una tabla, para que sea fácil elegir según tu situación:
| Tipo | Velocidad | Confiabilidad | Riesgo de bloqueo por GitHub | Mejor para |
|---|---|---|---|---|
| Proxies residenciales | Media | Alta | Mínimo | Trabajo diario, push/pull, interfaz web |
| Proxies de centros de datos | Alta | Media | Media | Clonación de grandes repos, API de GitHub, CI/CD |
| Proxies móviles | Media | Muy alta | Muy bajo | Trabajo con la cuenta, si ya está bajo sospecha |
| VPN (de pago) | Media | Media | Media | Acceso general a internet + GitHub |
| Túnel SSH (VPS propio) | Alta | Alta | Bajo | Desarrolladores con VPS en Europa/EE. UU. |
| Tor | Muy baja | Baja | Alta | No recomendado para trabajar con Git |
Si tu cuenta ya ha recibido advertencias o ha sido temporalmente congelada, considera usar proxies móviles — utilizan IP de operadores móviles, que GitHub prácticamente nunca bloquea, ya que detrás de una IP móvil hay miles de usuarios.
Cómo configurar proxies en Git, terminal e IDE: guía paso a paso
La principal ventaja de configurar proxies directamente en Git (y no a nivel de sistema o VPN) es que controlas qué tráfico pasa a través del proxy. Las solicitudes locales permanecen directas, solo el tráfico de GitHub se enruta a través de la IP externa.
Configuración de proxy HTTPS en Git (globalmente)
Abre la terminal y ejecuta los siguientes comandos, reemplazando HOST y PORT con los datos de tu proxy:
# Para proxy HTTP/HTTPS: git config --global http.proxy http://HOST:PORT # Para proxy SOCKS5 (recomendado): git config --global http.proxy socks5://HOST:PORT # Si el proxy requiere autenticación (usuario + contraseña): git config --global http.proxy socks5://USERNAME:PASSWORD@HOST:PORT # Aplicar solo para github.com (no tocar otros repositorios): git config --global http.https://github.com.proxy socks5://HOST:PORT
El último comando es el más útil: aplica el proxy solo para solicitudes a github.com, sin afectar a GitLab, Bitbucket o repositorios internos de la empresa.
Verificación de la configuración
# Ver la configuración actual del proxy en Git: git config --global --list | grep proxy # Probar la conexión con GitHub a través del proxy: git ls-remote https://github.com/github/gitignore HEAD
Si el comando ls-remote devuelve un hash de commit — el proxy funciona. Si obtienes el error Connection refused o Could not resolve host — verifica la corrección de HOST y PORT.
Desactivar el proxy (cuando no se necesita)
# Eliminar el proxy global: git config --global --unset http.proxy # Eliminar el proxy solo para github.com: git config --global --unset http.https://github.com.proxy
Configuración en VS Code
VS Code utiliza la configuración del proxy del sistema para la terminal integrada y las extensiones. Si configuraste el proxy en Git a través de la terminal, la terminal integrada de VS Code capturará automáticamente estas configuraciones. Para el proxy HTTP en el propio editor (por ejemplo, para instalar extensiones), abre:
Archivo → Preferencias → Configuración → buscar "proxy" → especifica la dirección del proxy en el campo http.proxy.
Configuración a través de un túnel SSH (si tienes tu VPS)
Si tienes un VPS en Europa o EE. UU., puedes levantar un proxy SOCKS5 local a través de SSH con un solo comando:
# Crear un proxy SOCKS5 en el puerto local 1080 a través de SSH: ssh -D 1080 -C -N user@your-vps-ip # Luego en Git especificar este proxy local: git config --global http.proxy socks5://127.0.0.1:1080
La bandera -D 1080 abre un proxy SOCKS5 en el puerto 1080, -C habilita la compresión, -N le dice a SSH que no ejecute comandos — solo mantener el túnel.
SSH vs HTTPS: qué funciona mejor a través de proxies para GitHub
Esta es una de las preguntas más frecuentes: ¿qué protocolo utilizar para trabajar con GitHub a través de un proxy — SSH (puerto 22 o 443) o HTTPS (puerto 443)?
HTTPS a través de un proxy
Las conexiones HTTPS son fáciles de proxear — los comandos git config http.proxy, que analizamos anteriormente, funcionan precisamente para HTTPS. Desventaja: en cada push/pull, Git solicita el nombre de usuario y la contraseña (o el Token de Acceso Personal). La solución es guardar el token en el almacén de credenciales:
# Habilitar el almacenamiento del token en el keychain del sistema: git config --global credential.helper store # Después del primer push exitoso, el token se guardará automáticamente
SSH a través de un proxy (ProxyCommand)
Las conexiones SSH no se pueden proxear a través del estándar http.proxy en Git — se necesita una configuración separada en ~/.ssh/config. Agrega el siguiente bloque:
Host github.com
HostName ssh.github.com
User git
Port 443
ProxyCommand nc -X 5 -x HOST:PORT %h %p
Aquí ssh.github.com:443 es un endpoint SSH especial de GitHub que funciona en el puerto 443 (HTTPS), lo que ayuda a eludir bloqueos en el puerto 22. nc -X 5 utiliza un proxy SOCKS5.
Puedes verificar la conexión SSH con el comando:
ssh -T [email protected] # Respuesta esperada: ¡Hola username! Te has autenticado exitosamente...
Recomendación:
Para la mayoría de los desarrolladores, es más fácil configurar HTTPS + proxy SOCKS5 en la configuración de Git. SSH a través de ProxyCommand requiere la instalación de la utilidad netcat y una configuración un poco más compleja, pero ofrece comodidad al trabajar con claves SSH sin necesidad de ingresar el token.
Riesgos para la cuenta y cómo minimizarlos
Usar proxies para GitHub no es solo una tarea técnica, sino también una cuestión de seguridad de la cuenta. Una configuración incorrecta puede atraer la atención hacia la cuenta o crear nuevos problemas.
Riesgo 1: Cambio constante de IP
Si utilizas proxies rotativos (la IP cambia con cada solicitud o cada pocos minutos), GitHub puede registrar actividad sospechosa: una cuenta accede desde decenas de IP diferentes en poco tiempo. Esto es un desencadenante para una revisión de seguridad y un posible bloqueo.
Solución: Usa proxies estáticos (sticky) con IP fija o proxies de sesión con un tiempo de sesión prolongado (más de 24 horas). Para GitHub no se necesita rotación — se necesita estabilidad.
Riesgo 2: Uso de IP bloqueadas de centros de datos
Algunos rangos de IP de proveedores de hosting populares (AWS, DigitalOcean, Vultr) ya están en listas negras o generan atención adicional. GitHub no los bloquea directamente, pero puede solicitar verificación adicional.
Solución: Elige centros de datos europeos (DE, NL, CH) — son menos propensos a caer en listas negras. Antes de un uso constante, verifica la IP a través de ipinfo.io o scamalytics.com.
Riesgo 3: Datos iraníes en el perfil
Si en tu perfil de GitHub se indica Irán (en el campo de Ubicación), es más probable que la cuenta esté sujeta a restricciones independientemente de la IP. Esto no significa que debas ocultar tu origen — pero es importante entender que es un factor adicional.
Riesgo 4: Trabajo con repositorios organizacionales
Si tu organización en GitHub está registrada como una empresa iraní o tiene administradores iraníes, las restricciones pueden ser más severas — hasta la congelación de toda la organización. En este caso, el proxy ayuda para la cuenta personal, pero no resuelve el problema a nivel organizacional.
Qué hacer si la cuenta ya está congelada
GitHub proporciona un proceso oficial para descongelar cuentas para desarrolladores individuales. Escribe a [email protected] explicando la situación. En el correo, indica:
- Que eres un desarrollador individual, no asociado con organizaciones sancionadas
- Que tu actividad es desarrollo de software de código abierto o comercial
- Enlaces a tus repositorios públicos y actividad
Según la experiencia de la comunidad, GitHub restaura el acceso para la mayoría de los desarrolladores individuales en un plazo de 1 a 4 semanas.
Lista de verificación: comprobación rápida de la configuración del proxy para GitHub
Utiliza esta lista de verificación para asegurarte de que todo esté configurado correctamente antes de comenzar a trabajar:
✅ Antes de la configuración
- Obtén los datos del proxy: HOST, PORT, tipo (HTTP/SOCKS5), usuario/contraseña
- Verifica la IP del proxy en
ipinfo.io— el país no debe ser Irán - Asegúrate de que la IP no esté en la lista negra: verifica en
scamalytics.com - Elige una IP estática (no rotativa) para un trabajo constante
✅ Configuración de Git
- Se ejecutó el comando
git config --global http.proxy - El proxy se aplicó solo para github.com (no globalmente) — si se necesita configuración específica
- Se configuró credential.helper para almacenar el token (para HTTPS)
- Para SSH: se agregó un bloque en
~/.ssh/configcon ProxyCommand
✅ Verificación del funcionamiento
- El comando
git ls-remote https://github.com/github/gitignore HEADdevuelve un hash - El comando
ssh -T [email protected]devuelve un saludo (para SSH) - El push en un repositorio de prueba se realizó con éxito
- No hay errores
403 ForbiddenoRepository access blocked
✅ Seguridad de la cuenta
- Se utiliza una IP estática (no rotativa)
- Se ha habilitado la autenticación de dos factores en la cuenta de GitHub
- El Token de Acceso Personal se configuró con los permisos mínimos necesarios (solo repo)
- El token tiene un tiempo de expiración (no es perpetuo)
Conclusión
Las restricciones de sanciones de GitHub son una realidad incómoda para los desarrolladores iraníes, pero no son un callejón sin salida. Existe una solución técnica que funciona: un proxy con IP extranjera junto con la configuración adecuada de Git permite realizar un desarrollo completo — hacer push de commits, clonar repositorios, trabajar con GitHub Actions y participar en proyectos de código abierto.
Conclusiones clave del artículo:
- Para el trabajo diario, elige proxies residenciales o de centros de datos estáticos de Europa — IP estable sin rotación.
- Configura el proxy en la configuración de Git, y no a nivel de sistema — esto proporciona control específico sin afectar todo el tráfico.
- Si la cuenta ya está bajo sospecha — utiliza IP móviles, que prácticamente nunca caen bajo bloqueos.
- Si la cuenta está congelada — escribe a [email protected], GitHub restaura el acceso para desarrolladores individuales.
- Utiliza SSH a través del puerto 443 (ssh.github.com) — esto elude la mayoría de los bloqueos a nivel de proveedor.
Si buscas una solución confiable para trabajar de manera constante con GitHub, te recomendamos considerar proxies residenciales — utilizan IP reales de usuarios domésticos de países permitidos, atraen mínimamente la atención de los sistemas de protección y proporcionan una conexión estable para operaciones de Git. Para tareas de alta carga (clonación de grandes repositorios, pipelines de CI/CD), una buena alternativa son los proxies de centros de datos — son más rápidos y económicos al trabajar con grandes volúmenes de datos.
```