libcurl-env(3) libcurl environment variables libcurl-env(3)
NAME
libcurl-env - environment variables libcurl understands
DESCRIPTION
libcurl reads and understands a set of environment variables that if
set will control and change behaviors. This is the full list of vari-
ables to set and description of what they do. Also note that curl, the
command line tool, supports a set of additional environment variables
independently of this.
[scheme]_proxy
When libcurl is given a URL to use in a transfer, it first ex-
tracts the "scheme" part from the URL and checks if there is a
given proxy set for that in its corresponding environment vari-
able. A URL like "https://example.com" will hence use the
"http_proxy" variable, while a URL like "ftp://example.com" will
use the "ftp_proxy" variable.
These proxy variables are also checked for in their uppercase
versions, except the "http_proxy" one which is only used lower-
case. Note also that some systems actually have a case insensi-
tive handling of environment variables and then of course
"HTTP_PROXY" will still work...
ALL_PROXY
This is a setting to set proxy for all URLs, independently of
what scheme is being used. Note that the scheme specific vari-
ables will override this one if set.
CURL_SSL_BACKEND
When libcurl is built to support multiple SSL backends, it will
select a specific backend at first use. If no selection is done
by the program using libcurl, this variable's selection will be
used. Setting a name that is not a built-in alternative will
make libcurl stay with the default.
SSL backend names (case-insensitive): bearssl, gnutls, gskit,
mbedtls, mesalink, nss, openssl, rustls, schannel, secure-trans-
port, wolfssl
HOME When the netrc feature is used (CURLOPT_NETRC(3)), this variable
is checked as the primary way to find the "current" home direc-
tory in which the .netrc file is likely to exist.
LOGNAME
User name to use when invoking the ntlm-wb tool, if NTLMUSER was
not set.
NO_PROXY
This has the same functionality as the CURLOPT_NOPROXY(3) op-
tion: it gives libcurl a comma-separated list of host name pat-
terns for which libcurl should not use a proxy.
NTLMUSER
User name to use when invoking the ntlm-wb tool.
SSLKEYLOGFILE
When set and libcurl runs with a SSL backend that supports this
feature, libcurl will save SSL secrets into the given file name.
Using those SSL secrets, other tools (such as Wireshark) can de-
crypt the SSL communication and analyze/view the traffic.
SSL_DIR
When libcurl runs with the NSS backends for TLS features, this
variable is used to find the directory for NSS PKI database in-
stead of the built-in.
USER User name to use when invoking the ntlm-wb tool, if NTLMUSER and
LOGNAME were not set.
Debug Variables
There's a set of variables only recognized and used if libcurl was
built "debug enabled", which should never be true for a library used in
production.
CURL_GETHOSTNAME
Debug-only variable.
CURL_FORCETIME
Debug-only variable.
CURL_ENTROPY
Debug-only variable. Used to set a fixed faked value to use in-
stead of a proper random number so that functions in libcurl
that are otherwise getting random outputs can be tested for what
they generate.
CURL_TRACE
Debug-only variable. Used for debugging the lib/ldap implementa-
tion.
CURL_NTLM_WB_FILE
Debug-only variable. Used to set to a debug-version of the ntlm-
wb executable.
CURL_OPENLDAP_TRACE
Debug-only variable. Used for debugging the lib/openldap.c im-
plementation.
libcurl 7.81.0 October 31, 2021 libcurl-env(3)
Generated by dwww version 1.14 on Fri Dec 5 02:31:21 CET 2025.