← Kembali ke blog

Proxy untuk Pengembang Iran: Cara Mengakses GitHub, npm, dan PyPI di Bawah Sanksi pada Tahun 2024

Pengembang Iran menghadapi pemblokiran GitHub, npm, dan PyPI akibat sanksi. Kami menjelaskan cara mengatasi pembatasan melalui proxy dan melanjutkan pekerjaan tanpa gangguan.

šŸ“…10 Juli 2026
```html

Pengembang Iran secara teratur menghadapi pembatasan yang ketat: GitHub memblokir akun, paket npm tidak dapat diinstal, PyPI memberikan kesalahan koneksi. Semua ini adalah akibat dari sanksi yang memutuskan negara-negara dari infrastruktur dasar pengembangan. Jika Anda bekerja dari Iran atau mempekerjakan spesialis Iran, artikel ini akan memberikan solusi konkret — tanpa basa-basi dan teori.

Apa yang diblokir dan mengapa

Sanksi AS terhadap Iran tidak hanya mencakup operasi keuangan — mereka juga mempengaruhi layanan teknologi. Perusahaan yang berada di bawah yurisdiksi AS (yang hampir mencakup seluruh tumpukan pengembangan modern) diwajibkan untuk membatasi akses pengguna dari negara-negara yang terkena sanksi. Akibatnya, pengembang Iran menghadapi masalah berikut:

  • GitHub — memblokir akun, repositori menjadi tidak dapat diakses, Actions tidak berjalan, Copilot tidak berfungsi.
  • npm (npmjs.com) — saat mencoba menginstal paket melalui npm install muncul kesalahan koneksi atau penolakan akses yang jelas.
  • PyPI (pypi.org) — pip install macet atau mengembalikan kesalahan 403.
  • Docker Hub — menarik gambar diblokir.
  • Cloudflare, AWS, Azure, Google Cloud — sebagian layanan tidak tersedia atau berfungsi tidak stabil.
  • Stack Overflow, JetBrains, VS Code Marketplace — pemblokiran berkala pada tingkat IP.

Pemblokiran terjadi pada tingkat alamat IP: jika IP Anda milik penyedia Iran (nomor AS IRANCELL, Shatel, MCI, dan lainnya), permintaan secara otomatis ditolak bahkan sebelum akun diperiksa. Itulah sebabnya VPN atau proksi dengan IP dari negara lain bukanlah cara untuk menghindari, tetapi satu-satunya cara yang efektif untuk mendapatkan akses ke infrastruktur pengembangan.

Penting untuk dipahami:

Proksi dan VPN menyelesaikan masalah pada tingkat yang berbeda. VPN mengalihkan semua lalu lintas sistem — ini nyaman untuk browser, tetapi tidak nyaman untuk alat baris perintah (git, npm, pip), di mana pengaturan yang tepat diperlukan. Proksi memungkinkan Anda mengatur penghindaran sanksi hanya untuk alat tertentu, tanpa mengganggu lalu lintas lainnya.

Jenis proksi apa yang cocok untuk pengembangan

Untuk tugas pengembang — bekerja dengan repositori, menginstal paket, CI/CD — stabilitas koneksi, kecepatan, dan kebersihan IP sangat penting. Mari kita bahas tiga jenis proksi utama dan bagaimana mereka cocok untuk skenario tertentu.

Proksi Residensial

Proksi residensial menggunakan alamat IP nyata dari pengguna rumah di berbagai negara. Untuk GitHub, ini sangat penting: platform menganalisis tidak hanya geolokasi IP, tetapi juga reputasinya. IP dari pusat data menimbulkan kecurigaan, sementara IP rumah dari AS atau Eropa dianggap sebagai pengguna biasa. Proksi residensial adalah pilihan yang paling dapat diandalkan untuk bekerja dengan akun GitHub secara berkelanjutan.

Proksi Pusat Data

Proksi pusat data — cepat dan murah. Mereka cocok untuk menginstal paket melalui npm dan pip: PyPI dan npmjs.com tidak memeriksa reputasi IP seketat GitHub. Jika Anda hanya perlu mengunduh dependensi dalam pipeline CI/CD, proksi pusat data akan menyelesaikan tugas dan lebih murah.

Proksi Seluler

Proksi seluler menggunakan IP dari operator seluler (4G/5G). Ini adalah jenis IP yang paling "bersih" dari sudut pandang sistem anti-fraud: satu IP seluler secara bersamaan digunakan oleh ribuan pengguna nyata, sehingga memblokirnya tidak menguntungkan. Proksi seluler relevan jika Anda sudah mengalami masalah dengan pemblokiran akun GitHub dan ingin meminimalkan risiko pemblokiran ulang.

Pengaturan proksi untuk GitHub

GitHub menggunakan dua protokol untuk bekerja dengan repositori: HTTPS dan SSH. Untuk masing-masing, pengaturan proksi dilakukan dengan cara yang berbeda. Mari kita bahas kedua opsi.

Proksi untuk git melalui HTTPS

Ini adalah cara yang paling umum untuk bekerja dengan GitHub. Pengaturan dilakukan melalui konfigurasi git. Buka terminal dan jalankan:

# Pengaturan proksi HTTP untuk git (ganti host, port, user, password dengan data Anda)
git config --global http.proxy http://user:password@proxy-host:port
git config --global https.proxy http://user:password@proxy-host:port

# Memeriksa pengaturan
git config --global --get http.proxy

# Jika proksi tanpa otorisasi:
git config --global http.proxy http://proxy-host:port

Setelah pengaturan ini, semua perintah git clone, git push, git pull akan melalui proksi. Jika Anda perlu mengatur proksi hanya untuk GitHub, bukan untuk semua repositori:

# Proksi hanya untuk github.com
git config --global http.https://github.com.proxy http://user:password@proxy-host:port

Proksi untuk git melalui SSH

Koneksi SSH ke GitHub bekerja melalui port 22 (atau 443 sebagai alternatif). Untuk memproksi lalu lintas SSH, digunakan utilitas nc (netcat) atau connect. Edit file ~/.ssh/config:

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

Jika Anda menggunakan Windows, Anda dapat menggunakan connect.exe sebagai pengganti nc atau mengatur ProxyCommand melalui PuTTY. Di macOS dan Linux, netcat biasanya sudah terpasang.

Pengaturan Variabel Lingkungan

Cara alternatif adalah menggunakan variabel lingkungan. Mereka bekerja tidak hanya untuk git, tetapi juga untuk banyak alat baris perintah lainnya:

# Linux / macOS — tambahkan ke ~/.bashrc atau ~/.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"

Pengaturan proksi untuk npm dan Node.js

npm memiliki dukungan proksi bawaan. Pengaturannya hanya membutuhkan satu perintah dan langsung diterapkan ke semua operasi instalasi paket. Ini sangat penting bagi pengembang Iran yang bekerja dengan tumpukan JavaScript/TypeScript: React, Vue, Angular, Next.js — semuanya aktif menggunakan npmjs.com.

# Pengaturan proksi untuk npm
npm config set proxy http://user:password@proxy-host:port
npm config set https-proxy http://user:password@proxy-host:port

# Memeriksa konfigurasi saat ini
npm config get proxy
npm config get https-proxy

# Menonaktifkan proksi (jika perlu mengembalikan koneksi langsung)
npm config delete proxy
npm config delete https-proxy

Pengaturan disimpan dalam file ~/.npmrc. Anda juga dapat mengedit file ini secara langsung:

# Konten ~/.npmrc
proxy=http://user:password@proxy-host:port
https-proxy=http://user:password@proxy-host:port
strict-ssl=false

Yarn dan pnpm

Jika Anda menggunakan Yarn atau pnpm, pengaturannya mirip:

# 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) — edit .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

Tips untuk CI/CD:

Jika Anda menggunakan GitHub Actions, GitLab CI, atau sistem lain, tambahkan variabel HTTP_PROXY dan HTTPS_PROXY ke rahasia proyek. Ini akan memungkinkan semua langkah pipeline secara otomatis menggunakan proksi.

Pengaturan proksi untuk PyPI dan pip

Pengembang Python dari Iran sering menghadapi pemblokiran PyPI: pip menggunakan HTTPS untuk mengunduh paket, dan jika IP diblokir, instalasi hanya macet atau mengeluarkan kesalahan. Ada beberapa cara untuk mengatur proksi untuk pip.

Metode 1: Flag --proxy saat instalasi

# Instalasi sekali melalui proksi
pip install requests --proxy http://user:password@proxy-host:port

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

Metode 2: File konfigurasi pip.conf

Agar tidak perlu menyebutkan proksi setiap kali menjalankan perintah, tambahkan pengaturan ke file konfigurasi 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

Metode 3: Variabel Lingkungan

# pip secara otomatis mengambil variabel lingkungan standar
export HTTP_PROXY="http://user:password@proxy-host:port"
export HTTPS_PROXY="http://user:password@proxy-host:port"

# Setelah itu, pip install biasa akan bekerja melalui proksi
pip install numpy pandas scikit-learn

Poetry dan Conda

Jika Anda menggunakan Poetry untuk mengelola dependensi, pengaturan proksi dilakukan melalui variabel lingkungan — Poetry mewarisi HTTP_PROXY dan HTTPS_PROXY secara otomatis. Untuk Conda, tambahkan ke file ~/.condarc:

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

Alat pengembang lainnya: Docker, Composer, Maven

Pemblokiran tidak hanya mempengaruhi GitHub, npm, dan PyPI. Mari kita lihat pengaturan proksi untuk alat pengembangan populer lainnya yang juga mungkin tidak tersedia dari Iran.

Docker

Docker Hub diblokir untuk IP Iran. Untuk melakukan docker pull, atur proksi dalam konfigurasi daemon Docker:

# Linux: buat atau edit /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"
  }
}

# Restart Docker
sudo systemctl restart docker

Di macOS dan Windows, pengaturan proksi untuk Docker Desktop dilakukan melalui antarmuka grafis: Settings → Resources → Proxies.

Composer (PHP)

# Composer menggunakan variabel lingkungan
export HTTP_PROXY="http://user:password@proxy-host:port"
export HTTPS_PROXY="http://user:password@proxy-host:port"

# Atau melalui konfigurasi Composer
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>

Modul Go

# Go menggunakan GOPROXY untuk mengunduh modul
# Anda dapat menentukan cermin atau mengatur proksi sistem
export GOPROXY="https://goproxy.io,direct"
export HTTP_PROXY="http://user:password@proxy-host:port"
export HTTPS_PROXY="http://user:password@proxy-host:port"

Keamanan: cara menjaga akun GitHub Anda

Menggunakan proksi menyelesaikan masalah akses, tetapi menciptakan yang baru: jika Anda masuk ke GitHub dari alamat IP yang berbeda (hari ini dari Iran, besok melalui proksi AS, lusa melalui proksi Eropa), sistem keamanan GitHub dapat memblokir akun sebagai mencurigakan. Berikut cara menghindarinya.

Aturan Konsistensi IP

Gunakan server proksi yang sama untuk bekerja dengan GitHub. Jika penyedia proksi Anda mengubah IP setiap kali terhubung (proksi rotasi), ini dapat menimbulkan kecurigaan. Untuk GitHub, proksi statis adalah yang terbaik — satu IP yang terikat untuk Anda dalam jangka waktu yang lama.

  • Proksi Residensial Statis — satu IP rumah dari AS atau Eropa yang terikat untuk Anda. Keandalan maksimum untuk GitHub.
  • Proksi Rotasi — cocok untuk npm/pip (pengunduhan paket), tetapi tidak untuk masuk ke akun GitHub.
  • Jangan campurkan koneksi langsung dan proksi: baik selalu melalui proksi, atau tidak pernah.

Autentikasi Dua Faktor

Aktifkan 2FA di GitHub — ini akan melindungi akun bahkan jika seseorang mencuri kredensial Anda. Gunakan aplikasi autentikator (Google Authenticator, Authy), bukan SMS — SMS mungkin tidak tersedia dari Iran atau berfungsi tidak dapat diandalkan.

Kunci SSH sebagai Pengganti Kata Sandi

Atur kunci SSH untuk bekerja dengan GitHub sebagai pengganti otorisasi HTTPS dengan kata sandi. Kunci SSH terikat pada perangkat, bukan pada IP, sehingga perubahan IP saat menggunakan SSH kurang kritis untuk sistem keamanan GitHub.

Perbandingan jenis proksi untuk pengembang

Mari kita ringkas dalam bentuk tabel: jenis proksi mana yang paling cocok untuk tugas tertentu pengembang dari Iran.

Tugas Residensial Pusat Data Seluler
GitHub (akun, push/pull) āœ… Bagus āš ļø Risiko pemblokiran āœ… Bagus
npm install (instalasi paket) āœ… Bagus āœ… Bagus āœ… Bagus
pip install (PyPI) āœ… Bagus āœ… Bagus āœ… Bagus
Docker Hub (menarik gambar) āœ… Bagus āœ… Bagus āš ļø Mahal
Pipeline CI/CD (permintaan massal) āš ļø Mahal āœ… Bagus āŒ Tidak cocok
Kecepatan koneksi Sedang Tinggi Sedang
Risiko pemblokiran IP Rendah Sedang Sangat rendah
Biaya Sedang Rendah Tinggi

Strategi yang Direkomendasikan

Skema optimal untuk pengembang:

  1. Untuk GitHub — proksi residensial statis dari AS atau Jerman. Satu IP, selalu sama.
  2. Untuk npm/pip/Docker — proksi pusat data dengan bandwidth yang baik. Kecepatan lebih penting daripada reputasi IP.
  3. Untuk browser dan layanan web — proksi residensial yang sama atau terpisah.

Protokol: HTTP vs SOCKS5

Sebagian besar alat pengembangan (git, npm, pip) mendukung proksi HTTP/HTTPS. SOCKS5 lebih universal — ia bekerja pada tingkat TCP dan cocok untuk protokol apa pun, termasuk SSH. Jika penyedia proksi Anda mendukung SOCKS5, gunakan untuk koneksi SSH ke GitHub. Untuk lalu lintas HTTP (npm, pip) tidak ada perbedaan yang signifikan.

Kesimpulan dan rekomendasi

Sanksi menciptakan hambatan nyata bagi pengembang Iran, tetapi tidak membuat pekerjaan menjadi tidak mungkin. Proksi yang diatur dengan benar memungkinkan Anda untuk bekerja sepenuhnya dengan GitHub, menginstal paket melalui npm dan pip, menarik gambar dari Docker Hub — tanpa kehilangan akun dan tanpa pemblokiran yang terus-menerus.

Kesimpulan utama dari artikel ini:

  • Untuk bekerja dengan GitHub, gunakan proksi residensial statis — satu IP tetap dari AS atau Eropa.
  • Untuk menginstal paket (npm, pip, Composer), proksi pusat data yang lebih murah dengan kecepatan baik akan cocok.
  • Atur proksi pada tingkat alat (git config, npm config, pip.conf), bukan hanya pada tingkat sistem.
  • Jangan campurkan koneksi langsung dan proksi untuk satu akun GitHub.
  • Aktifkan 2FA dan gunakan kunci SSH untuk keamanan maksimal akun Anda.

Jika Anda mencari solusi yang andal untuk bekerja secara terus-menerus dengan GitHub dan layanan yang diblokir lainnya, kami merekomendasikan untuk memperhatikan proksi residensial — mereka memberikan akses stabil melalui alamat IP rumah yang nyata, yang sangat jarang terkena pemblokiran oleh GitHub dan platform lainnya.

```