323 lines
12 KiB
Plaintext
323 lines
12 KiB
Plaintext
|
.SH FILES
|
||
|
.I ~/.curlrc
|
||
|
.RS
|
||
|
Default config file, see --config for details.
|
||
|
.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
|
||
|
the --proxy option.
|
||
|
|
||
|
.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,
|
||
|
SMTP, LDAP, etc.
|
||
|
.IP "ALL_PROXY [protocol://]<host>[:port]"
|
||
|
Sets the proxy server to use if no protocol-specific proxy is set.
|
||
|
.IP "NO_PROXY <comma-separated list of hosts/domains>"
|
||
|
list of host names that should not 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.
|
||
|
|
||
|
This environment variable disables use of the proxy even when specified with
|
||
|
the --proxy option. That is
|
||
|
.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
|
||
|
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.
|
||
|
|
||
|
IP addresses can be specified using CIDR notation: an appended slash and
|
||
|
number specifies the number of "network bits" out of the address to use in the
|
||
|
comparison (added in 7.86.0). For example "192.168.0.0/16" would match all
|
||
|
addresses starting with "192.168".
|
||
|
.IP "APPDATA <dir>"
|
||
|
On Windows, this variable is used when trying to find the home directory. If
|
||
|
the primary home variable are all unset.
|
||
|
.IP "COLUMNS <terminal width>"
|
||
|
If set, the specified number of characters is used as the terminal width when
|
||
|
the alternative progress-bar is shown. If not set, curl tries to figure it out
|
||
|
using other ways.
|
||
|
.IP "CURL_CA_BUNDLE <file>"
|
||
|
If set, it is used as the --cacert value.
|
||
|
.IP "CURL_HOME <dir>"
|
||
|
If set, is the first variable curl checks when trying to find its home
|
||
|
directory. If not set, it continues to check *XDG_CONFIG_HOME*
|
||
|
.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
|
||
|
invoked. Setting a name that is not a built-in alternative makes curl stay
|
||
|
with the default.
|
||
|
|
||
|
SSL backend names (case-insensitive): **bearssl**, **gnutls**, **mbedtls**,
|
||
|
**openssl**, **rustls**, **schannel**, **secure-transport**, **wolfssl**
|
||
|
.IP "HOME <dir>"
|
||
|
If set, this is used to find the home directory when that is needed. Like when
|
||
|
looking for the default .curlrc. *CURL_HOME* and *XDG_CONFIG_HOME*
|
||
|
have preference.
|
||
|
.IP "QLOGDIR <directory name>"
|
||
|
If curl was built with HTTP/3 support, setting this environment variable to a
|
||
|
local directory makes 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 the ngtcp2 and quiche QUIC backends.
|
||
|
.IP SHELL
|
||
|
Used on VMS when trying to detect if using a **DCL** or a **unix** shell.
|
||
|
.IP "SSL_CERT_DIR <dir>"
|
||
|
If set, it is used as the --capath value.
|
||
|
.IP "SSL_CERT_FILE <path>"
|
||
|
If set, it is used as the --cacert value.
|
||
|
.IP "SSLKEYLOGFILE <file name>"
|
||
|
If you set this environment variable to a file name, curl stores 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
|
||
|
and wolfSSL.
|
||
|
.IP "USERPROFILE <dir>"
|
||
|
On Windows, this variable is used when trying to find the home directory. If
|
||
|
the other, primary, variable are all unset. If set, curl uses the path
|
||
|
**"$USERPROFILE\\Application Data"**.
|
||
|
.IP "XDG_CONFIG_HOME <dir>"
|
||
|
If *CURL_HOME* is not set, this variable is checked when looking for a
|
||
|
default .curlrc file.
|
||
|
.SH "PROXY PROTOCOL PREFIXES"
|
||
|
The proxy string may be specified with a protocol:// prefix to specify
|
||
|
alternative proxy protocols. (Added in 7.21.7)
|
||
|
|
||
|
If no protocol is specified in the proxy string or if the string does not
|
||
|
match a supported one, the proxy is treated as an HTTP proxy.
|
||
|
|
||
|
The supported proxy protocol prefixes are as follows:
|
||
|
.IP "http://"
|
||
|
Makes it use it as an HTTP proxy. The default if no scheme prefix is used.
|
||
|
.IP "https://"
|
||
|
Makes it treated as an **HTTPS** proxy.
|
||
|
.IP "socks4://"
|
||
|
Makes it the equivalent of --socks4
|
||
|
.IP "socks4a://"
|
||
|
Makes it the equivalent of --socks4a
|
||
|
.IP "socks5://"
|
||
|
Makes it the equivalent of --socks5
|
||
|
.IP "socks5h://"
|
||
|
Makes it the equivalent of --socks5-hostname
|
||
|
.SH EXIT CODES
|
||
|
There are a bunch of different error codes and their corresponding error
|
||
|
messages that may appear under error conditions. At the time of this writing,
|
||
|
the exit codes are:
|
||
|
.IP 0
|
||
|
Success. The operation completed successfully according to the instructions.
|
||
|
.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
|
||
|
Could not resolve proxy. The given proxy host could not be resolved.
|
||
|
.IP 6
|
||
|
Could not resolve host. The given remote host could not be resolved.
|
||
|
.IP 7
|
||
|
Failed to connect to host.
|
||
|
.IP 8
|
||
|
Weird server reply. The server sent data curl could not 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 does not exist on the server.
|
||
|
.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.
|
||
|
.IP 11
|
||
|
FTP weird PASS reply. Curl could not parse the reply sent to the PASS request.
|
||
|
.IP 12
|
||
|
During an active FTP session while waiting for the server to connect back to
|
||
|
curl, the timeout expired.
|
||
|
.IP 13
|
||
|
FTP weird PASV reply, Curl could not parse the reply sent to the PASV request.
|
||
|
.IP 14
|
||
|
FTP weird 227 format. Curl could not parse the 227-line the server sent.
|
||
|
.IP 15
|
||
|
FTP cannot use host. Could not resolve the host IP we got in the 227-line.
|
||
|
.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.
|
||
|
.IP 17
|
||
|
FTP could not set binary. Could not change transfer method to binary.
|
||
|
.IP 18
|
||
|
Partial file. Only a part of the file was transferred.
|
||
|
.IP 19
|
||
|
FTP could not 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
|
||
|
appears if --fail is used.
|
||
|
.IP 23
|
||
|
Write error. Curl could not write data to a local filesystem or similar.
|
||
|
.IP 25
|
||
|
Failed starting the upload. For FTP, the server typically denied the STOR
|
||
|
command.
|
||
|
.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 could not use REST. The REST command failed. This command is used for
|
||
|
resumed FTP transfers.
|
||
|
.IP 33
|
||
|
HTTP range error. The range "command" did not work.
|
||
|
.IP 34
|
||
|
HTTP post error. Internal post-request generation error.
|
||
|
.IP 35
|
||
|
SSL connect error. The SSL handshaking failed.
|
||
|
.IP 36
|
||
|
Bad download resume. Could not continue an earlier aborted download.
|
||
|
.IP 37
|
||
|
FILE could not 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 52
|
||
|
The server did not 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
|
||
|
Could not use specified SSL cipher.
|
||
|
.IP 60
|
||
|
Peer certificate cannot be authenticated with known CA certificates.
|
||
|
.IP 61
|
||
|
Unrecognized transfer encoding.
|
||
|
.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 initialize 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 77
|
||
|
Problem reading the SSL CA cert (path? access rights?).
|
||
|
.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
|
||
|
The FTP PRET command failed.
|
||
|
.IP 85
|
||
|
Mismatch of RTSP CSeq numbers.
|
||
|
.IP 86
|
||
|
Mismatch of RTSP Session Identifiers.
|
||
|
.IP 87
|
||
|
Unable to parse FTP file list.
|
||
|
.IP 88
|
||
|
FTP chunk callback reported error.
|
||
|
.IP 89
|
||
|
No connection available, the session is queued.
|
||
|
.IP 90
|
||
|
SSL public key does not matched pinned public key.
|
||
|
.IP 91
|
||
|
Invalid SSL certificate status.
|
||
|
.IP 92
|
||
|
Stream error in HTTP/2 framing layer.
|
||
|
.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.
|
||
|
.IP 97
|
||
|
Proxy handshake error.
|
||
|
.IP 98
|
||
|
A client-side certificate is required to complete the TLS handshake.
|
||
|
.IP 99
|
||
|
Poll or select returned fatal error.
|
||
|
.IP XX
|
||
|
More error codes might appear here in future releases. The existing ones are
|
||
|
meant to never change.
|
||
|
.SH BUGS
|
||
|
If you experience any problems with curl, submit an issue in the project's bug
|
||
|
tracker on GitHub: https://github.com/curl/curl/issues
|
||
|
.SH AUTHORS / CONTRIBUTORS
|
||
|
Daniel Stenberg is the main author, but the whole list of contributors is
|
||
|
found in the separate THANKS file.
|
||
|
.SH WWW
|
||
|
https://curl.se
|
||
|
.SH "SEE ALSO"
|
||
|
.BR ftp (1),
|
||
|
.BR wget (1)
|