Консольные утилиты игнорируют системный прокси Windows - вот корень «браузер работает, терминал нет». Ниже стандартные способы провести их через Clash; эти же команды - отличная диагностика.
curl: самая быстрая проверка цепочки
# без прокси - ваш локальный выход
curl https://api.ip.sb/ip
# через Clash - выход узла
curl -x http://127.0.0.1:7890 https://api.ip.sb/ip
# вариант SOCKS5 (смешанный порт понимает оба)
curl --socks5 127.0.0.1:7890 https://api.ip.sb/ip
Два разных IP - цепочка работает. Ключ -v показывает рукопожатие и точку сбоя.
Переменные окружения: на сеанс
Большинство утилит (curl, wget, pip, go, …) уважают http_proxy/https_proxy:
# PowerShell
$env:http_proxy = "http://127.0.0.1:7890"
$env:https_proxy = "http://127.0.0.1:7890"
# CMD
set http_proxy=http://127.0.0.1:7890
set https_proxy=http://127.0.0.1:7890
Действует только в текущем окне терминала и исчезает с его закрытием - обычно это и нужно. Можно и в системные переменные, но не советуем: забывается, и при выключенном Clash все терминалы теряют сеть.
Настройки отдельных инструментов
# Git
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
# отменить:
git config --global --unset http.proxy
# npm
npm config set proxy http://127.0.0.1:7890
npm config set https-proxy http://127.0.0.1:7890
# SSH через прокси ([email protected], в ~/.ssh/config)
Host github.com
ProxyCommand connect -S 127.0.0.1:7890 %h %p