Браузер давно за прокси, а git clone всё ползёт. Консольные утилиты не читают настройку прокси ОС — они уважают переменные окружения и собственные конфиги, и больше ничего. Настроим все ходовые инструменты. В примерах — стандартный смешанный порт Clash Verge 7897; меняли — подставьте свой.
Универсальный способ: переменные окружения
PowerShell (Windows)
$env:HTTP_PROXY = "http://127.0.0.1:7897"
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
bash / zsh (macOS, Linux)
export http_proxy="http://127.0.0.1:7897"
export https_proxy="http://127.0.0.1:7897"
export all_proxy="socks5://127.0.0.1:7897"
Область действия — текущая сессия терминала: закрыли окно — всё забылось. Обычно это плюс: остальная система не затронута. Проверка:
curl -I https://www.google.com # HTTP/2 200 = работает
Включение одним словом
Каждый раз набирать надоедает. В ~/.bashrc / ~/.zshrc:
alias pon='export http_proxy=http://127.0.0.1:7897 https_proxy=http://127.0.0.1:7897 all_proxy=socks5://127.0.0.1:7897'
alias poff='unset http_proxy https_proxy all_proxy'
В PowerShell — аналогичные функции в $PROFILE. Дальше: pon — включить, poff — выключить.
Утилиты со своим конфигом
git
git config --global http.proxy http://127.0.0.1:7897
# отменить:
git config --global --unset http.proxy
Это касается только HTTPS-репозиториев. SSH-адреса ([email protected]) требуют ProxyCommand в ~/.ssh/config — либо просто смените адрес на HTTPS.
npm / pnpm
npm config set proxy http://127.0.0.1:7897
npm config set https-proxy http://127.0.0.1:7897
pip
pip install пакет --proxy http://127.0.0.1:7897
pip читает и переменные окружения — обычно отдельная настройка не нужна.
docker
Два разных места, вечная путаница: docker pull ходит через демон — настраивайте Docker Desktop → Settings → Resources → Proxies. А трафик при сборке внутри контейнера получает прокси через --build-arg HTTP_PROXY=….
Альтернатива без настройки: TUN
С режимом TUN весь терминальный трафик идёт через прокси без единой строчки из этой статьи. Плата — глобальность; точечная избирательность остаётся за переменными окружения. Работает и обратный подход: TUN на всё плюс правила по процессам для исключений.
Классические грабли: localhost вместо 127.0.0.1. Часть утилит резолвит localhost в IPv6 ::1, а ядро слушает только IPv4 — симптом «прописал прокси и пропала вся сеть». Пишите 127.0.0.1.