123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322 |
- .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
- FTP could not 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 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)
|