Iranische Entwickler sehen sich regelmäßig strengen Einschränkungen gegenüber: GitHub sperrt Konten, npm-Pakete können nicht installiert werden, PyPI gibt Verbindungsfehler zurück. All dies sind Folgen von Sanktionen, die ganze Länder von der grundlegenden Entwicklungsinfrastruktur abschneiden. Wenn Sie aus dem Iran arbeiten oder iranische Fachkräfte einstellen, bietet Ihnen dieser Artikel eine konkrete Lösung – ohne unnötige Informationen und Theorie.
Was genau blockiert wird und warum
Die US-Sanktionen gegen den Iran betreffen nicht nur Finanztransaktionen – sie betreffen auch technologische Dienste. Unternehmen, die unter die US-Jurisdiktion fallen (und das ist praktisch der gesamte Stack der modernen Entwicklung), sind verpflichtet, den Zugang für Nutzer aus sanktionierten Ländern zu beschränken. Infolgedessen sehen sich iranische Entwickler mit den folgenden Problemen konfrontiert:
- GitHub – sperrt Konten, Repositories werden unzugänglich, Actions starten nicht, Copilot funktioniert nicht.
- npm (npmjs.com) – beim Versuch, Pakete über
npm installzu installieren, treten Verbindungsfehler oder eine klare Zugangsverweigerung auf. - PyPI (pypi.org) –
pip installhängt oder gibt einen Fehler 403 zurück. - Docker Hub – das Herunterladen von Images ist blockiert.
- Cloudflare, AWS, Azure, Google Cloud – einige Dienste sind nicht verfügbar oder funktionieren instabil.
- Stack Overflow, JetBrains, VS Code Marketplace – gelegentliche IP-Blockierungen.
Die Blockierung erfolgt auf IP-Adressebene: Wenn Ihre IP einem iranischen Anbieter gehört (AS-Nummern IRANCELL, Shatel, MCI und andere), wird die Anfrage automatisch abgelehnt, noch bevor das Konto überprüft wird. Deshalb ist ein VPN oder Proxy mit einer IP aus einem anderen Land kein Umgehungsmanöver, sondern der einzige funktionierende Weg, um Zugang zur Entwicklungsinfrastruktur zu erhalten.
Wichtig zu verstehen:
Proxys und VPNs lösen das Problem auf unterschiedlichen Ebenen. Ein VPN leitet den gesamten Systemverkehr um – das ist praktisch für den Browser, aber unpraktisch für Befehlszeilenwerkzeuge (git, npm, pip), wo eine gezielte Konfiguration erforderlich ist. Ein Proxy ermöglicht es, die Umgehung von Sanktionen nur für ein bestimmtes Werkzeug einzurichten, ohne den restlichen Verkehr zu beeinträchtigen.
Welcher Proxytyp für die Entwicklung geeignet ist
Für die Aufgaben eines Entwicklers – Arbeiten mit Repositories, Installation von Paketen, CI/CD – sind Stabilität der Verbindung, Geschwindigkeit und IP-Integrität wichtig. Lassen Sie uns drei Haupttypen von Proxys untersuchen und wie sie für bestimmte Szenarien geeignet sind.
Residential Proxys
Residential Proxys verwenden echte IP-Adressen von Heimnutzern aus verschiedenen Ländern. Für GitHub ist dies von entscheidender Bedeutung: Die Plattform analysiert nicht nur die Geolokalisierung der IP, sondern auch deren Reputation. Eine IP aus einem Rechenzentrum weckt Verdacht, während eine heimische amerikanische oder europäische IP als normaler Benutzer wahrgenommen wird. Residential Proxys sind die zuverlässigste Option für die dauerhafte Arbeit mit GitHub-Konten.
Rechenzentrums-Proxys
Rechenzentrums-Proxys sind schnell und kostengünstig. Sie eignen sich gut für die Installation von Paketen über npm und pip: PyPI und npmjs.com überprüfen die IP-Reputation nicht so streng wie GitHub. Wenn Sie einfach nur Abhängigkeiten in einem CI/CD-Pipeline herunterladen müssen, erledigt ein Rechenzentrums-Proxy die Aufgabe und ist günstiger.
Mobile Proxys
Mobile Proxys verwenden IPs von Mobilfunkanbietern (4G/5G). Dies ist der "reinste" IP-Typ aus Sicht von Antifraud-Systemen: hinter einer mobilen IP befinden sich gleichzeitig Tausende von echten Nutzern, weshalb es unvorteilhaft ist, sie zu blockieren. Mobile Proxys sind relevant, wenn Sie bereits Probleme mit der Sperrung Ihres GitHub-Kontos hatten und das Risiko einer erneuten Sperrung so weit wie möglich minimieren möchten.
Proxy für GitHub einrichten
GitHub verwendet zwei Protokolle für die Arbeit mit Repositories: HTTPS und SSH. Die Einrichtung des Proxys erfolgt für jedes von ihnen unterschiedlich. Lassen Sie uns beide Optionen betrachten.
Proxy für git über HTTPS
Dies ist die gebräuchlichste Methode zur Arbeit mit GitHub. Die Einrichtung erfolgt über die git-Konfiguration. Öffnen Sie das Terminal und führen Sie aus:
# HTTP-Proxy für git einrichten (ersetzen Sie host, port, user, password durch Ihre Daten) git config --global http.proxy http://user:password@proxy-host:port git config --global https.proxy http://user:password@proxy-host:port # Überprüfung der Einstellungen git config --global --get http.proxy # Wenn der Proxy keine Authentifizierung benötigt: git config --global http.proxy http://proxy-host:port
Nach dieser Einstellung werden alle Befehle git clone, git push, git pull über den Proxy geleitet. Wenn Sie den Proxy nur für GitHub und nicht für alle Repositories einrichten möchten:
# Proxy nur für github.com git config --global http.https://github.com.proxy http://user:password@proxy-host:port
Proxy für git über SSH
Die SSH-Verbindung zu GitHub funktioniert über Port 22 (oder 443 als Alternative). Zum Proxieren des SSH-Verkehrs wird das Dienstprogramm nc (netcat) oder connect verwendet. Bearbeiten Sie die Datei ~/.ssh/config:
Host github.com HostName github.com User git ProxyCommand nc -X connect -x proxy-host:port %h %p # Oder für SOCKS5: # ProxyCommand nc -X 5 -x proxy-host:port %h %p
Wenn Sie Windows verwenden, können Sie anstelle von nc connect.exe verwenden oder ProxyCommand über PuTTY einrichten. Auf macOS und Linux ist netcat normalerweise bereits installiert.
Umgebungsvariablen einrichten
Eine alternative Methode sind Umgebungsvariablen. Diese funktionieren nicht nur für git, sondern auch für viele andere Befehlszeilenwerkzeuge:
# Linux / macOS – fügen Sie in ~/.bashrc oder ~/.zshrc hinzu 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"
Proxy für npm und Node.js einrichten
npm hat eine integrierte Unterstützung für Proxys. Die Einrichtung erfolgt mit nur einem Befehl und wird sofort auf alle Paketinstallationen angewendet. Dies ist besonders wichtig für iranische Entwickler, die mit dem JavaScript/TypeScript-Stack arbeiten: React, Vue, Angular, Next.js – alle nutzen aktiv npmjs.com.
# Proxy für npm einrichten npm config set proxy http://user:password@proxy-host:port npm config set https-proxy http://user:password@proxy-host:port # Überprüfung der aktuellen Konfiguration npm config get proxy npm config get https-proxy # Deaktivierung des Proxys (wenn Sie eine direkte Verbindung zurückgeben möchten) npm config delete proxy npm config delete https-proxy
Die Einstellungen werden in der Datei ~/.npmrc gespeichert. Sie können diese Datei auch direkt bearbeiten:
# Inhalt von ~/.npmrc proxy=http://user:password@proxy-host:port https-proxy=http://user:password@proxy-host:port strict-ssl=false
Yarn und pnpm
Wenn Sie Yarn oder pnpm verwenden, ist die Einrichtung ähnlich:
# 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) – bearbeiten Sie .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
Tipp für CI/CD:
Wenn Sie GitHub Actions, GitLab CI oder ein anderes System verwenden, fügen Sie die Variablen HTTP_PROXY und HTTPS_PROXY zu den Geheimnissen des Projekts hinzu. Dies ermöglicht es allen Schritten der Pipeline, automatisch den Proxy zu verwenden.
Proxy für PyPI und pip einrichten
Python-Entwickler aus dem Iran sehen sich besonders häufig mit der Blockierung von PyPI konfrontiert: pip verwendet HTTPS zum Herunterladen von Paketen, und wenn die IP blockiert ist, hängt die Installation einfach oder gibt einen Fehler aus. Es gibt mehrere Möglichkeiten, einen Proxy für pip einzurichten.
Methode 1: Flag --proxy bei der Installation
# Einmalige Installation über den Proxy pip install requests --proxy http://user:password@proxy-host:port # Für pip3 pip3 install django --proxy http://user:password@proxy-host:port
Methode 2: Konfigurationsdatei pip.conf
Um den Proxy nicht bei jedem Befehl anzugeben, fügen Sie die Einstellungen in die Konfigurationsdatei pip ein:
# 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
Methode 3: Umgebungsvariablen
# pip übernimmt automatisch die Standard-Umgebungsvariablen export HTTP_PROXY="http://user:password@proxy-host:port" export HTTPS_PROXY="http://user:password@proxy-host:port" # Danach funktioniert der normale pip install über den Proxy pip install numpy pandas scikit-learn
Poetry und Conda
Wenn Sie Poetry zur Verwaltung von Abhängigkeiten verwenden, erfolgt die Proxy-Einrichtung über Umgebungsvariablen – Poetry erbt HTTP_PROXY und HTTPS_PROXY automatisch. Für Conda fügen Sie in die Datei ~/.condarc hinzu:
# ~/.condarc proxy_servers: http: http://user:password@proxy-host:port https: http://user:password@proxy-host:port
Andere Entwicklerwerkzeuge: Docker, Composer, Maven
Blockierungen betreffen nicht nur GitHub, npm und PyPI. Lassen Sie uns die Proxy-Einrichtung für andere beliebte Entwicklungswerkzeuge betrachten, die ebenfalls aus dem Iran möglicherweise nicht verfügbar sind.
Docker
Docker Hub ist für iranische IPs blockiert. Um docker pull auszuführen, richten Sie den Proxy in der Docker-Daemon-Konfiguration ein:
# Linux: erstellen oder bearbeiten Sie /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"
}
}
# Starten Sie Docker neu
sudo systemctl restart docker
Auf macOS und Windows erfolgt die Proxy-Einrichtung für Docker Desktop über die grafische Benutzeroberfläche: Einstellungen → Ressourcen → Proxys.
Composer (PHP)
# Composer verwendet Umgebungsvariablen export HTTP_PROXY="http://user:password@proxy-host:port" export HTTPS_PROXY="http://user:password@proxy-host:port" # Oder über die Composer-Konfiguration composer config --global http-basic.repo.packagist.org user password
Maven (Java)
<!-- ~/.m2/settings.xml -->
<settings>
<proxies>
<proxy>
<id>my-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>
Go-Module
# Go verwendet GOPROXY zum Herunterladen von Modulen # Sie können ein Spiegelbild angeben oder einen systemweiten Proxy einrichten export GOPROXY="https://goproxy.io,direct" export HTTP_PROXY="http://user:password@proxy-host:port" export HTTPS_PROXY="http://user:password@proxy-host:port"
Sicherheit: Wie man sein GitHub-Konto nicht verliert
Die Verwendung von Proxys löst das Zugangsproblem, schafft jedoch ein neues: Wenn Sie sich von verschiedenen IP-Adressen bei GitHub anmelden (heute aus dem Iran, morgen über einen amerikanischen Proxy, übermorgen über einen europäischen), kann das Sicherheitssystem von GitHub Ihr Konto als verdächtig sperren. So vermeiden Sie das.
Regel der IP-Kontinuität
Verwenden Sie denselben Proxy-Server für die Arbeit mit GitHub. Wenn Ihr Proxy-Anbieter bei jeder Verbindung die IP wechselt (rotierende Proxys), kann dies Verdacht erregen. Für GitHub sind statische Proxys am besten geeignet – eine IP, die langfristig für Sie reserviert ist.
- Statischer Residential Proxy – eine heimische IP aus den USA oder Europa, die für Sie reserviert ist. Maximale Zuverlässigkeit für GitHub.
- Rotierender Proxy – geeignet für npm/pip (Paketdownloads), aber nicht für den Zugang zu einem GitHub-Konto.
- Mischen Sie keine direkten und Proxy-Verbindungen: entweder immer über Proxy oder nie.
Zwei-Faktor-Authentifizierung
Aktivieren Sie 2FA auf GitHub – das schützt Ihr Konto, selbst wenn jemand Ihre Anmeldedaten abfängt. Verwenden Sie eine Authentifizierungs-App (Google Authenticator, Authy) anstelle von SMS – SMS kann aus dem Iran möglicherweise nicht verfügbar oder unzuverlässig sein.
SSH-Schlüssel anstelle von Passwörtern
Richten Sie SSH-Schlüssel für die Arbeit mit GitHub anstelle der HTTPS-Authentifizierung per Passwort ein. SSH-Schlüssel sind an das Gerät gebunden und nicht an die IP, daher ist der IP-Wechsel bei Verwendung von SSH für das Sicherheitssystem von GitHub weniger kritisch.
Vergleich der Proxytypen für Entwickler
Lassen Sie uns die Ergebnisse in Form einer Tabelle zusammenfassen: Welcher Proxytyp eignet sich am besten für die spezifischen Aufgaben eines Entwicklers aus dem Iran.
| Aufgabe | Residential | Rechenzentrum | Mobil |
|---|---|---|---|
| GitHub (Konto, push/pull) | ✅ Ausgezeichnet | ⚠️ Risiko einer Sperrung | ✅ Ausgezeichnet |
| npm install (Paketinstallation) | ✅ Gut | ✅ Ausgezeichnet | ✅ Gut |
| pip install (PyPI) | ✅ Gut | ✅ Ausgezeichnet | ✅ Gut |
| Docker Hub (Images herunterladen) | ✅ Gut | ✅ Gut | ⚠️ Teuer |
| CI/CD-Pipelines (Massenanfragen) | ⚠️ Teuer | ✅ Ausgezeichnet | ❌ Nicht geeignet |
| Verbindungsgeschwindigkeit | Durchschnittlich | Hoch | Durchschnittlich |
| Risiko einer IP-Sperrung | Niedrig | Mittel | Sehr niedrig |
| Kosten | Durchschnittlich | Niedrig | Hoch |
Empfohlene Strategie
Optimales Schema für den Entwickler:
- Für GitHub – statischer Residential Proxy aus den USA oder Deutschland. Eine IP, immer dieselbe.
- Für npm/pip/Docker – Rechenzentrums-Proxy mit guter Bandbreite. Geschwindigkeit ist wichtiger als die IP-Reputation.
- Für den Browser und Webdienste – derselbe Residential Proxy oder ein separater.
Protokolle: HTTP vs SOCKS5
Die meisten Entwicklungswerkzeuge (git, npm, pip) unterstützen HTTP/HTTPS-Proxys. SOCKS5 ist universeller – es funktioniert auf der TCP-Ebene und eignet sich für jedes Protokoll, einschließlich SSH. Wenn Ihr Proxy-Anbieter SOCKS5 unterstützt, verwenden Sie es für SSH-Verbindungen zu GitHub. Für HTTP-Verkehr (npm, pip) gibt es praktisch keinen Unterschied.
Fazit und Empfehlungen
Sanktionen schaffen echte Hindernisse für iranische Entwickler, aber sie machen die Arbeit nicht unmöglich. Ein richtig konfigurierter Proxy ermöglicht es, vollständig mit GitHub zu arbeiten, Pakete über npm und pip zu installieren und Images aus Docker Hub herunterzuladen – ohne Kontoverluste und ohne ständige Blockierungen.
Wichtige Erkenntnisse aus dem Artikel:
- Für die Arbeit mit GitHub verwenden Sie einen statischen Residential Proxy – eine dauerhafte IP aus den USA oder Europa.
- Für die Installation von Paketen (npm, pip, Composer) eignen sich günstigere Rechenzentrums-Proxys mit guter Geschwindigkeit.
- Richten Sie den Proxy auf der Ebene der Werkzeuge (
git config,npm config,pip.conf) ein, nicht nur auf Systemebene. - Mischen Sie keine direkten Verbindungen und Proxys für ein GitHub-Konto.
- Aktivieren Sie 2FA und verwenden Sie SSH-Schlüssel für maximale Sicherheit Ihres Kontos.
Wenn Sie nach einer zuverlässigen Lösung für die dauerhafte Arbeit mit GitHub und anderen blockierten Diensten suchen, empfehlen wir, auf Residential Proxys zu achten – sie bieten stabilen Zugang über echte Heim-IP-Adressen, die extrem selten von GitHub und anderen Plattformen blockiert werden.
```