Консольные утилиты игнорируют системный прокси 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
Совет: надоело настраивать по одному? Режим TUN перехватывает всё на сетевом уровне - вовсе без переменных. Зато вариант с переменными точен и не требует прав администратора.