Работа cargo через proxy (update registry)

Здравствуйте! Такая проблема, юзаю Visual Studio Code + Rust nightly.
Но updaiting crates не работает. Отваливается с warning: spurious network error (1 tries remaining): [2/-1] failed to send request: Время ожидания операции истекло

Связано с это скорее всего с proxy. Через Visual Studio Community бывает такая проблема - решается с помощью ввода username\password, который открывает доступ к сети.

М.б. кто-то знает как настроить VSCode для работы с сетью через proxy? Гугл не шибко помогает.

Кажется, что дело тут скорее в Cargo чем в VSCode. Cargo может получать информацию про прокси из переменных окружения. Например, можно установить:

http_proxy=http://username:password@host:3268/

Наверное, если запустить VSCode c таким окружением, то оно будет действовать и для Cargo.

3 лайка

Скорее всего так, но пока не получилось нормально настроить. Попробую ещё раз

У меня настройки прокси для cargo прописаны в файле c:\Users\UserName\.cargo\config:

[http]
proxy = "http://host:port"
check-revoke = false 

У меня прокси не требует логина, но по идее cargo должен понимать формат http://username:password@host:port.

А вот rustup работает только если установить переменную окружения:

https_proxy=http://host:port

Именно так - переменная называется https_proxy, а ее значение начинается с http//:.

Еще бывает rustup выдает SSL connect error. Это решается с помощью команды от имени администратора:

netsh winhttp set proxy proxy-server="http=http://host:port;https=https://host:port"

причем потом (после того как rustup нашел сервер) настройки прокси winhttp можно сбросить командой:

netsh winhttp reset proxy

а rustup будет нормально работать какое-то время.

1 лайк

Спасибо всем, да, проблема решилась.
У меня не было файла .cargo/config, создал файл, вставил
[http]
proxy = “http://user:pass@host:port/”

И cargo стал видеть внешний мир.