لوگو آی پی استاتیک
راهنمای برنامه‌نویسان

رفع تحریم گیت‌هاب، داکر، npm و pip — راهنمای کامل برنامه‌نویسان

ابزارهای برنامه‌نویسی برخلاف مرورگر، تنظیمات پروکسی سیستم را نمی‌خوانند. در این راهنما مسیر عبور هر ابزار را جداگانه تنظیم می‌کنیم.

رفع تحریم گیت‌هاب، داکر، npm و pip — راهنمای کامل برنامه‌نویسان
در این مقاله می‌خوانید

    چرا با آی‌پی ایران خطا می‌گیرید؟

    بیشتر سرویس‌های توسعه‌دهندگان، درخواست‌هایی که از محدودهٔ آی‌پی ایران می‌آیند را در لبهٔ شبکه (CDN) رد می‌کنند. نتیجه‌اش یکی از این پیام‌هاست:

    • 403 Forbidden هنگام git clone یا git push
    • Error response from daemon: ... 403 هنگام docker pull
    • پیام «this service is not available in your country» در پنل‌های ابری
    • کند شدن یا نیمه‌کاره ماندن npm install و pip install

    نکتهٔ مهم این است که این خطاها ربطی به فیلترینگ داخلی ندارند؛ سمت مقابل شما را رد می‌کند. برای همین «باز شدن سایت در مرورگر» لزوماً به معنی درست‌شدن ابزار خط فرمان نیست: هر ابزار مسیر شبکهٔ خودش را دارد.

    اول از همه: آی‌پی باید ثابت و تمیز باشد

    اگر آی‌پی خروجی شما مدام عوض شود، سرویس‌هایی مثل پنل‌های ابری و درگاه‌های ثبت حساب، رفتار شما را مشکوک تشخیص می‌دهند و ورود دومرحله‌ای یا کپچا می‌گیرند. آی‌پی اشتراکی که بین صدها کاربر می‌چرخد، معمولاً پیش‌تر توسط دیگران «سوخته» شده است. به همین دلیل برای کار حرفه‌ای، آی‌پی ثابت و اختصاصی تفاوت محسوسی ایجاد می‌کند.

    تنظیم گیت (Git)

    گیت پروکسی سیستم را نادیده می‌گیرد و باید صریح تنظیم شود:

    git config --global http.proxy socks5://127.0.0.1:10808
    git config --global https.proxy socks5://127.0.0.1:10808

    برای برداشتن تنظیمات:

    git config --global --unset http.proxy
    git config --global --unset https.proxy

    اگر با SSH کار می‌کنید (git@github.com:...)، تنظیم بالا اثری ندارد، چون SSH از مسیر دیگری می‌رود. در فایل ~/.ssh/config بنویسید:

    Host github.com
      HostName ssh.github.com
      Port 443
      User git

    تنظیم npm و Yarn

    npm config set proxy http://127.0.0.1:10809
    npm config set https-proxy http://127.0.0.1:10809

    دقت کنید که npm با پروکسی HTTP کار می‌کند، نه SOCKS. بیشتر کلاینت‌ها هر دو پورت را هم‌زمان باز می‌کنند (مثلاً SOCKS روی ۱۰۸۰۸ و HTTP روی ۱۰۸۰۹)؛ پورت درست را از تنظیمات برنامهٔ خود بردارید.

    تنظیم pip

    برای یک بار:

    pip install --proxy http://127.0.0.1:10809 requests

    برای همیشه، فایل pip.conf (در ویندوز pip.ini):

    [global]
    proxy = http://127.0.0.1:10809

    تنظیم داکر

    داکر با کاربر شما کار نمی‌کند؛ سرویس آن (daemon) باید پروکسی را بشناسد. در لینوکس یک فایل drop-in بسازید:

    sudo mkdir -p /etc/systemd/system/docker.service.d
    sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
    [Service]
    Environment="HTTP_PROXY=http://127.0.0.1:10809"
    Environment="HTTPS_PROXY=http://127.0.0.1:10809"
    Environment="NO_PROXY=localhost,127.0.0.1"
    sudo systemctl daemon-reload
    sudo systemctl restart docker

    توجه: این تنظیم برای docker pull است. اگر داخل کانتینر هم به اینترنت نیاز دارید، متغیرهای پروکسی را جداگانه به کانتینر بدهید.

    Composer و Go

    # Composer (PHP)
    export HTTP_PROXY=http://127.0.0.1:10809
    export HTTPS_PROXY=http://127.0.0.1:10809
    
    # Go
    go env -w GOPROXY=https://proxy.golang.org,direct

    چک‌لیست عیب‌یابی

    1. آی‌پی خروجی‌تان را بررسی کنید؛ باید آی‌پی سرویس باشد، نه آی‌پی ایران.
    2. ابزار را جداگانه تست کنید — باز شدن سایت در مرورگر کافی نیست.
    3. اگر پورت را عوض کرده‌اید، تنظیمات قدیمی ابزار را پاک کنید.
    4. برای داکر حتماً سرویس را ری‌استارت کنید؛ بدون آن تنظیم اعمال نمی‌شود.

    پرسش‌های متداول

    چرا سایت در مرورگر باز می‌شود ولی git clone خطا می‌دهد؟

    چون گیت تنظیمات پروکسی مرورگر را نمی‌خواند و باید با دستور git config جداگانه تنظیم شود.

    برای npm از SOCKS استفاده کنم یا HTTP؟

    npm فقط پروکسی HTTP را قبول می‌کند. اگر برنامهٔ شما هر دو پورت را باز می‌کند، پورت HTTP را بدهید.

    بعد از تنظیم پروکسی، docker pull هنوز خطا می‌دهد. چرا؟

    تنظیم داکر باید در سطح سرویس (systemd) انجام شود و سپس daemon-reload و restart اجرا شود.

    آی‌پی ثابت می‌خواهید؟

    آی‌پی ثابت و اختصاصی که بین کاربران دیگر نمی‌چرخد — تحویل آنی، با یک هفته ضمانت بازگشت وجه.

    ثبت نام

    مطالب مرتبط