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. On a Unix-like system with a shell like bash or zsh, you could use:

export https_proxy=socks5://proxy.example.com:1080 # or http://proxy.example.com:8080

On Windows, the command would be:

set https_proxy=socks5://proxy.example.com:1080

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.