xref: /aosp_15_r20/external/curl/docs/cmdline-opts/proxy.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker---
2*6236dae4SAndroid Build Coastguard Workerc: Copyright (C) Daniel Stenberg, <[email protected]>, et al.
3*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl
4*6236dae4SAndroid Build Coastguard WorkerLong: proxy
5*6236dae4SAndroid Build Coastguard WorkerShort: x
6*6236dae4SAndroid Build Coastguard WorkerArg: [protocol://]host[:port]
7*6236dae4SAndroid Build Coastguard WorkerHelp: Use this proxy
8*6236dae4SAndroid Build Coastguard WorkerCategory: proxy
9*6236dae4SAndroid Build Coastguard WorkerAdded: 4.0
10*6236dae4SAndroid Build Coastguard WorkerMulti: single
11*6236dae4SAndroid Build Coastguard WorkerSee-also:
12*6236dae4SAndroid Build Coastguard Worker  - socks5
13*6236dae4SAndroid Build Coastguard Worker  - proxy-basic
14*6236dae4SAndroid Build Coastguard WorkerExample:
15*6236dae4SAndroid Build Coastguard Worker  - --proxy http://proxy.example $URL
16*6236dae4SAndroid Build Coastguard Worker---
17*6236dae4SAndroid Build Coastguard Worker
18*6236dae4SAndroid Build Coastguard Worker# `--proxy`
19*6236dae4SAndroid Build Coastguard Worker
20*6236dae4SAndroid Build Coastguard WorkerUse the specified proxy.
21*6236dae4SAndroid Build Coastguard Worker
22*6236dae4SAndroid Build Coastguard WorkerThe proxy string can be specified with a protocol:// prefix. No protocol
23*6236dae4SAndroid Build Coastguard Workerspecified or http:// it is treated as an HTTP proxy. Use socks4://,
24*6236dae4SAndroid Build Coastguard Workersocks4a://, socks5:// or socks5h:// to request a specific SOCKS version to be
25*6236dae4SAndroid Build Coastguard Workerused.  (Added in 7.21.7)
26*6236dae4SAndroid Build Coastguard Worker
27*6236dae4SAndroid Build Coastguard WorkerUnix domain sockets are supported for socks proxy. Set localhost for the host
28*6236dae4SAndroid Build Coastguard Workerpart. e.g. socks5h://localhost/path/to/socket.sock
29*6236dae4SAndroid Build Coastguard Worker
30*6236dae4SAndroid Build Coastguard WorkerHTTPS proxy support works set with the https:// protocol prefix for OpenSSL
31*6236dae4SAndroid Build Coastguard Workerand GnuTLS (added in 7.52.0). It also works for BearSSL, mbedTLS, Rustls,
32*6236dae4SAndroid Build Coastguard WorkerSchannel, Secure Transport and wolfSSL (added in 7.87.0).
33*6236dae4SAndroid Build Coastguard Worker
34*6236dae4SAndroid Build Coastguard WorkerUnrecognized and unsupported proxy protocols cause an error (added in 7.52.0).
35*6236dae4SAndroid Build Coastguard WorkerAncient curl versions ignored unknown schemes and used http:// instead.
36*6236dae4SAndroid Build Coastguard Worker
37*6236dae4SAndroid Build Coastguard WorkerIf the port number is not specified in the proxy string, it is assumed to be
38*6236dae4SAndroid Build Coastguard Worker1080.
39*6236dae4SAndroid Build Coastguard Worker
40*6236dae4SAndroid Build Coastguard WorkerThis option overrides existing environment variables that set the proxy to
41*6236dae4SAndroid Build Coastguard Workeruse. If there is an environment variable setting a proxy, you can set proxy to
42*6236dae4SAndroid Build Coastguard Worker"" to override it.
43*6236dae4SAndroid Build Coastguard Worker
44*6236dae4SAndroid Build Coastguard WorkerAll operations that are performed over an HTTP proxy are transparently
45*6236dae4SAndroid Build Coastguard Workerconverted to HTTP. It means that certain protocol specific operations might
46*6236dae4SAndroid Build Coastguard Workernot be available. This is not the case if you can tunnel through the proxy, as
47*6236dae4SAndroid Build Coastguard Workerone with the --proxytunnel option.
48*6236dae4SAndroid Build Coastguard Worker
49*6236dae4SAndroid Build Coastguard WorkerUser and password that might be provided in the proxy string are URL decoded
50*6236dae4SAndroid Build Coastguard Workerby curl. This allows you to pass in special characters such as @ by using %40
51*6236dae4SAndroid Build Coastguard Workeror pass in a colon with %3a.
52*6236dae4SAndroid Build Coastguard Worker
53*6236dae4SAndroid Build Coastguard WorkerThe proxy host can be specified the same way as the proxy environment
54*6236dae4SAndroid Build Coastguard Workervariables, including the protocol prefix (http://) and the embedded user +
55*6236dae4SAndroid Build Coastguard Workerpassword.
56*6236dae4SAndroid Build Coastguard Worker
57*6236dae4SAndroid Build Coastguard WorkerWhen a proxy is used, the active FTP mode as set with --ftp-port, cannot be
58*6236dae4SAndroid Build Coastguard Workerused.
59*6236dae4SAndroid Build Coastguard Worker
60*6236dae4SAndroid Build Coastguard WorkerDoing FTP over an HTTP proxy without --proxytunnel makes curl do HTTP with an
61*6236dae4SAndroid Build Coastguard WorkerFTP URL over the proxy. For such transfers, common FTP specific options do not
62*6236dae4SAndroid Build Coastguard Workerwork, including --ftp-ssl-reqd and --ftp-ssl-control.
63