2016-11-28 07:54:16 +08:00
|
|
|
.SH FILES
|
|
|
|
.I ~/.curlrc
|
|
|
|
.RS
|
2016-12-18 06:56:50 +08:00
|
|
|
Default config file, see --config for details.
|
2016-11-28 07:54:16 +08:00
|
|
|
.SH ENVIRONMENT
|
|
|
|
The environment variables can be specified in lower case or upper case. The
|
|
|
|
lower case version has precedence. http_proxy is an exception as it is only
|
|
|
|
available in lower case.
|
|
|
|
|
|
|
|
Using an environment variable to set the proxy has the same effect as using
|
2016-12-18 06:56:50 +08:00
|
|
|
the --proxy option.
|
2016-11-28 07:54:16 +08:00
|
|
|
|
|
|
|
.IP "http_proxy [protocol://]<host>[:port]"
|
|
|
|
Sets the proxy server to use for HTTP.
|
|
|
|
.IP "HTTPS_PROXY [protocol://]<host>[:port]"
|
|
|
|
Sets the proxy server to use for HTTPS.
|
|
|
|
.IP "[url-protocol]_PROXY [protocol://]<host>[:port]"
|
|
|
|
Sets the proxy server to use for [url-protocol], where the protocol is a
|
|
|
|
protocol that curl supports and as specified in a URL. FTP, FTPS, POP3, IMAP,
|
2021-07-20 13:06:56 +08:00
|
|
|
SMTP, LDAP, etc.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP "ALL_PROXY [protocol://]<host>[:port]"
|
|
|
|
Sets the proxy server to use if no protocol-specific proxy is set.
|
2018-08-26 05:37:00 +08:00
|
|
|
.IP "NO_PROXY <comma-separated list of hosts/domains>"
|
|
|
|
list of host names that shouldn't go through any proxy. If set to an asterisk
|
|
|
|
\&'*' only, it matches all hosts. Each name in this list is matched as either
|
|
|
|
a domain name which contains the hostname, or the hostname itself.
|
2016-12-19 15:27:24 +08:00
|
|
|
|
2018-03-05 02:57:43 +08:00
|
|
|
This environment variable disables use of the proxy even when specified with
|
|
|
|
the --proxy option. That is
|
2016-12-19 15:27:24 +08:00
|
|
|
.B NO_PROXY=direct.example.com curl -x http://proxy.example.com
|
|
|
|
.B http://direct.example.com
|
|
|
|
accesses the target URL directly, and
|
|
|
|
.B NO_PROXY=direct.example.com curl -x http://proxy.example.com
|
|
|
|
.B http://somewhere.example.com
|
2018-03-05 02:57:43 +08:00
|
|
|
accesses the target URL through the proxy.
|
|
|
|
|
|
|
|
The list of host names can also be include numerical IP addresses, and IPv6
|
|
|
|
versions should then be given without enclosing brackets.
|
2020-08-23 05:50:14 +08:00
|
|
|
|
|
|
|
IPv6 numerical addresses are compared as strings, so they will only match if
|
|
|
|
the representations are the same: "::1" is the same as "::0:1" but they don't
|
|
|
|
match.
|
2020-06-16 23:36:50 +08:00
|
|
|
.IP "CURL_SSL_BACKEND <TLS backend>"
|
|
|
|
If curl was built with support for "MultiSSL", meaning that it has built-in
|
|
|
|
support for more than one TLS backend, this environment variable can be set to
|
|
|
|
the case insensitive name of the particular backend to use when curl is
|
docs: Add SSL backend names to CURL_SSL_BACKEND
- Document the names that can be used with CURL_SSL_BACKEND:
bearssl, gnutls, gskit, mbedtls, mesalink, nss, openssl, rustls,
schannel, secure-transport, wolfssl
Ref: https://github.com/curl/curl/issues/2209#issuecomment-360623286
Ref: https://github.com/curl/curl/issues/6717#issuecomment-800745201
Closes https://github.com/curl/curl/pull/6755
2021-03-17 13:38:10 +08:00
|
|
|
invoked. Setting a name that isn't a built-in alternative will make curl
|
2020-06-16 23:36:50 +08:00
|
|
|
stay with the default.
|
docs: Add SSL backend names to CURL_SSL_BACKEND
- Document the names that can be used with CURL_SSL_BACKEND:
bearssl, gnutls, gskit, mbedtls, mesalink, nss, openssl, rustls,
schannel, secure-transport, wolfssl
Ref: https://github.com/curl/curl/issues/2209#issuecomment-360623286
Ref: https://github.com/curl/curl/issues/6717#issuecomment-800745201
Closes https://github.com/curl/curl/pull/6755
2021-03-17 13:38:10 +08:00
|
|
|
|
|
|
|
SSL backend names (case-insensitive): bearssl, gnutls, gskit, mbedtls,
|
|
|
|
mesalink, nss, openssl, rustls, schannel, secure-transport, wolfssl
|
2020-06-16 23:36:50 +08:00
|
|
|
.IP "QLOGDIR <directory name>"
|
|
|
|
If curl was built with HTTP/3 support, setting this environment variable to a
|
|
|
|
local directory will make curl produce qlogs in that directory, using file
|
|
|
|
names named after the destination connection id (in hex). Do note that these
|
|
|
|
files can become rather large. Works with both QUIC backends.
|
|
|
|
.IP "SSLKEYLOGFILE <file name>"
|
|
|
|
If you set this environment variable to a file name, curl will store TLS
|
|
|
|
secrets from its connections in that file when invoked to enable you to
|
|
|
|
analyze the TLS traffic in real time using network analyzing tools such as
|
|
|
|
Wireshark. This works with the following TLS backends: OpenSSL, libressl,
|
|
|
|
BoringSSL, GnuTLS, NSS and wolfSSL.
|
2016-11-28 07:54:16 +08:00
|
|
|
.SH "PROXY PROTOCOL PREFIXES"
|
|
|
|
Since curl version 7.21.7, the proxy string may be specified with a
|
|
|
|
protocol:// prefix to specify alternative proxy protocols.
|
|
|
|
|
|
|
|
If no protocol is specified in the proxy string or if the string doesn't match
|
|
|
|
a supported one, the proxy will be treated as an HTTP proxy.
|
|
|
|
|
|
|
|
The supported proxy protocol prefixes are as follows:
|
2017-12-11 20:24:42 +08:00
|
|
|
.IP "http://"
|
2018-04-18 03:17:57 +08:00
|
|
|
Makes it use it as an HTTP proxy. The default if no scheme prefix is used.
|
2017-12-11 20:24:42 +08:00
|
|
|
.IP "https://"
|
2021-03-22 23:50:57 +08:00
|
|
|
Makes it treated as an **HTTPS** proxy.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP "socks4://"
|
2016-12-18 06:56:50 +08:00
|
|
|
Makes it the equivalent of --socks4
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP "socks4a://"
|
2016-12-18 06:56:50 +08:00
|
|
|
Makes it the equivalent of --socks4a
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP "socks5://"
|
2016-12-18 06:56:50 +08:00
|
|
|
Makes it the equivalent of --socks5
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP "socks5h://"
|
2016-12-18 06:56:50 +08:00
|
|
|
Makes it the equivalent of --socks5-hostname
|
2016-11-28 07:54:16 +08:00
|
|
|
.SH EXIT CODES
|
|
|
|
There are a bunch of different error codes and their corresponding error
|
2021-07-20 13:06:56 +08:00
|
|
|
messages that may appear under error conditions. At the time of this writing,
|
2016-11-28 07:54:16 +08:00
|
|
|
the exit codes are:
|
|
|
|
.IP 1
|
|
|
|
Unsupported protocol. This build of curl has no support for this protocol.
|
|
|
|
.IP 2
|
|
|
|
Failed to initialize.
|
|
|
|
.IP 3
|
|
|
|
URL malformed. The syntax was not correct.
|
|
|
|
.IP 4
|
|
|
|
A feature or option that was needed to perform the desired request was not
|
|
|
|
enabled or was explicitly disabled at build-time. To make curl able to do
|
|
|
|
this, you probably need another build of libcurl!
|
|
|
|
.IP 5
|
|
|
|
Couldn't resolve proxy. The given proxy host could not be resolved.
|
|
|
|
.IP 6
|
2021-07-20 13:06:56 +08:00
|
|
|
Couldn't resolve host. The given remote host could not be resolved.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 7
|
|
|
|
Failed to connect to host.
|
|
|
|
.IP 8
|
|
|
|
Weird server reply. The server sent data curl couldn't parse.
|
|
|
|
.IP 9
|
|
|
|
FTP access denied. The server denied login or denied access to the particular
|
|
|
|
resource or directory you wanted to reach. Most often you tried to change to a
|
|
|
|
directory that doesn't exist on the server.
|
2016-12-25 17:58:08 +08:00
|
|
|
.IP 10
|
|
|
|
FTP accept failed. While waiting for the server to connect back when an active
|
|
|
|
FTP session is used, an error code was sent over the control connection or
|
|
|
|
similar.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 11
|
|
|
|
FTP weird PASS reply. Curl couldn't parse the reply sent to the PASS request.
|
2016-12-25 17:58:08 +08:00
|
|
|
.IP 12
|
|
|
|
During an active FTP session while waiting for the server to connect back to
|
|
|
|
curl, the timeout expired.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 13
|
|
|
|
FTP weird PASV reply, Curl couldn't parse the reply sent to the PASV request.
|
|
|
|
.IP 14
|
|
|
|
FTP weird 227 format. Curl couldn't parse the 227-line the server sent.
|
|
|
|
.IP 15
|
|
|
|
FTP can't get host. Couldn't resolve the host IP we got in the 227-line.
|
2016-12-25 17:58:08 +08:00
|
|
|
.IP 16
|
|
|
|
HTTP/2 error. A problem was detected in the HTTP2 framing layer. This is
|
|
|
|
somewhat generic and can be one out of several problems, see the error message
|
|
|
|
for details.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 17
|
|
|
|
FTP couldn't set binary. Couldn't change transfer method to binary.
|
|
|
|
.IP 18
|
|
|
|
Partial file. Only a part of the file was transferred.
|
|
|
|
.IP 19
|
|
|
|
FTP couldn't download/access the given file, the RETR (or similar) command
|
|
|
|
failed.
|
|
|
|
.IP 21
|
|
|
|
FTP quote error. A quote command returned error from the server.
|
|
|
|
.IP 22
|
|
|
|
HTTP page not retrieved. The requested url was not found or returned another
|
|
|
|
error with the HTTP error code being 400 or above. This return code only
|
2016-12-18 06:56:50 +08:00
|
|
|
appears if --fail is used.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 23
|
|
|
|
Write error. Curl couldn't write data to a local filesystem or similar.
|
|
|
|
.IP 25
|
|
|
|
FTP couldn't STOR file. The server denied the STOR operation, used for FTP
|
|
|
|
uploading.
|
|
|
|
.IP 26
|
|
|
|
Read error. Various reading problems.
|
|
|
|
.IP 27
|
|
|
|
Out of memory. A memory allocation request failed.
|
|
|
|
.IP 28
|
|
|
|
Operation timeout. The specified time-out period was reached according to the
|
|
|
|
conditions.
|
|
|
|
.IP 30
|
|
|
|
FTP PORT failed. The PORT command failed. Not all FTP servers support the PORT
|
|
|
|
command, try doing a transfer using PASV instead!
|
|
|
|
.IP 31
|
|
|
|
FTP couldn't use REST. The REST command failed. This command is used for
|
|
|
|
resumed FTP transfers.
|
|
|
|
.IP 33
|
|
|
|
HTTP range error. The range "command" didn't work.
|
|
|
|
.IP 34
|
|
|
|
HTTP post error. Internal post-request generation error.
|
|
|
|
.IP 35
|
|
|
|
SSL connect error. The SSL handshaking failed.
|
|
|
|
.IP 36
|
2016-12-29 18:22:18 +08:00
|
|
|
Bad download resume. Couldn't continue an earlier aborted download.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 37
|
|
|
|
FILE couldn't read file. Failed to open the file. Permissions?
|
|
|
|
.IP 38
|
|
|
|
LDAP cannot bind. LDAP bind operation failed.
|
|
|
|
.IP 39
|
|
|
|
LDAP search failed.
|
|
|
|
.IP 41
|
|
|
|
Function not found. A required LDAP function was not found.
|
|
|
|
.IP 42
|
|
|
|
Aborted by callback. An application told curl to abort the operation.
|
|
|
|
.IP 43
|
|
|
|
Internal error. A function was called with a bad parameter.
|
|
|
|
.IP 45
|
|
|
|
Interface error. A specified outgoing interface could not be used.
|
|
|
|
.IP 47
|
|
|
|
Too many redirects. When following redirects, curl hit the maximum amount.
|
|
|
|
.IP 48
|
|
|
|
Unknown option specified to libcurl. This indicates that you passed a weird
|
|
|
|
option to curl that was passed on to libcurl and rejected. Read up in the
|
|
|
|
manual!
|
|
|
|
.IP 49
|
|
|
|
Malformed telnet option.
|
|
|
|
.IP 51
|
|
|
|
The peer's SSL certificate or SSH MD5 fingerprint was not OK.
|
|
|
|
.IP 52
|
|
|
|
The server didn't reply anything, which here is considered an error.
|
|
|
|
.IP 53
|
|
|
|
SSL crypto engine not found.
|
|
|
|
.IP 54
|
|
|
|
Cannot set SSL crypto engine as default.
|
|
|
|
.IP 55
|
|
|
|
Failed sending network data.
|
|
|
|
.IP 56
|
|
|
|
Failure in receiving network data.
|
|
|
|
.IP 58
|
|
|
|
Problem with the local certificate.
|
|
|
|
.IP 59
|
|
|
|
Couldn't use specified SSL cipher.
|
|
|
|
.IP 60
|
|
|
|
Peer certificate cannot be authenticated with known CA certificates.
|
|
|
|
.IP 61
|
|
|
|
Unrecognized transfer encoding.
|
|
|
|
.IP 62
|
|
|
|
Invalid LDAP URL.
|
|
|
|
.IP 63
|
|
|
|
Maximum file size exceeded.
|
|
|
|
.IP 64
|
|
|
|
Requested FTP SSL level failed.
|
|
|
|
.IP 65
|
|
|
|
Sending the data requires a rewind that failed.
|
|
|
|
.IP 66
|
|
|
|
Failed to initialise SSL Engine.
|
|
|
|
.IP 67
|
|
|
|
The user name, password, or similar was not accepted and curl failed to log in.
|
|
|
|
.IP 68
|
|
|
|
File not found on TFTP server.
|
|
|
|
.IP 69
|
|
|
|
Permission problem on TFTP server.
|
|
|
|
.IP 70
|
|
|
|
Out of disk space on TFTP server.
|
|
|
|
.IP 71
|
|
|
|
Illegal TFTP operation.
|
|
|
|
.IP 72
|
|
|
|
Unknown TFTP transfer ID.
|
|
|
|
.IP 73
|
|
|
|
File already exists (TFTP).
|
|
|
|
.IP 74
|
|
|
|
No such user (TFTP).
|
|
|
|
.IP 75
|
|
|
|
Character conversion failed.
|
|
|
|
.IP 76
|
|
|
|
Character conversion functions required.
|
|
|
|
.IP 77
|
2021-07-20 13:06:56 +08:00
|
|
|
Problem reading the SSL CA cert (path? access rights?).
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 78
|
|
|
|
The resource referenced in the URL does not exist.
|
|
|
|
.IP 79
|
|
|
|
An unspecified error occurred during the SSH session.
|
|
|
|
.IP 80
|
|
|
|
Failed to shut down the SSL connection.
|
|
|
|
.IP 82
|
|
|
|
Could not load CRL file, missing or wrong format (added in 7.19.0).
|
|
|
|
.IP 83
|
|
|
|
Issuer check failed (added in 7.19.0).
|
|
|
|
.IP 84
|
2021-07-20 13:06:56 +08:00
|
|
|
The FTP PRET command failed.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 85
|
2021-07-20 13:06:56 +08:00
|
|
|
Mismatch of RTSP CSeq numbers.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 86
|
2021-07-20 13:06:56 +08:00
|
|
|
Mismatch of RTSP Session Identifiers.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 87
|
2021-07-20 13:06:56 +08:00
|
|
|
Unable to parse FTP file list.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 88
|
2021-07-20 13:06:56 +08:00
|
|
|
FTP chunk callback reported error.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 89
|
2021-07-20 13:06:56 +08:00
|
|
|
No connection available, the session will be queued.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP 90
|
2021-07-20 13:06:56 +08:00
|
|
|
SSL public key does not matched pinned public key.
|
2017-12-11 20:11:47 +08:00
|
|
|
.IP 91
|
|
|
|
Invalid SSL certificate status.
|
|
|
|
.IP 92
|
|
|
|
Stream error in HTTP/2 framing layer.
|
2020-08-04 22:01:28 +08:00
|
|
|
.IP 93
|
|
|
|
An API function was called from inside a callback.
|
|
|
|
.IP 94
|
|
|
|
An authentication function returned an error.
|
|
|
|
.IP 95
|
|
|
|
A problem was detected in the HTTP/3 layer. This is somewhat generic and can
|
|
|
|
be one out of several problems, see the error message for details.
|
|
|
|
.IP 96
|
|
|
|
QUIC connection error. This error may be caused by an SSL library error. QUIC
|
|
|
|
is the protocol used for HTTP/3 transfers.
|
2016-11-28 07:54:16 +08:00
|
|
|
.IP XX
|
|
|
|
More error codes will appear here in future releases. The existing ones
|
|
|
|
are meant to never change.
|
|
|
|
.SH AUTHORS / CONTRIBUTORS
|
|
|
|
Daniel Stenberg is the main author, but the whole list of contributors is
|
|
|
|
found in the separate THANKS file.
|
|
|
|
.SH WWW
|
2020-11-04 21:02:01 +08:00
|
|
|
https://curl.se
|
2016-11-28 07:54:16 +08:00
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR ftp (1),
|
|
|
|
.BR wget (1)
|