Network proxies
Enterprise networks often don’t have direct outside HTTP access, but enforce
the use of proxies. If you’re on such a network, you can request that rustup
uses a proxy by setting its URL in the environment. In most cases, setting
https_proxy
should be sufficient. Commands may differ between different
systems and shells:
- On a Unix-like system with a shell like bash or zsh:
export https_proxy=socks5://proxy.example.com:1080
- On Windows Command Prompt (cmd):
set https_proxy=socks5://proxy.example.com:1080
- On Windows PowerShell (or PowerShell Core):
$env:https_proxy="socks5://proxy.example.com:1080"
- Replace
socks5://proxy.example.com:1080
withhttp://proxy.example.com:8080
when an HTTP proxy is used instead.
If you need a more complex setup, rustup
supports the convention used by the
curl program, documented in the ENVIRONMENT section of its manual
page.
The use of curl
is presently deprecated, however it can still be used by
providing the RUSTUP_USE_CURL
environment variable, for example:
RUSTUP_USE_CURL=1 rustup update
Note that some versions of libcurl
apparently require you to drop the
http://
or https://
prefix in environment variables. For example, export http_proxy=proxy.example.com:1080
(and likewise for HTTPS). If you are
getting an SSL unknown protocol
error from rustup
via libcurl
but the
command-line curl
command works fine, this may be the problem.