@@ -89,6 +89,8 @@ Also, you can use some new stuff that is not supported by curl.
8989* ` gocurl --tls-split-hello 5:50 https://httpbin.agrd.workers.dev/get` split
9090 TLS ClientHello in two parts and make a 50ms delay after sending the first
9191 part.
92+ * ` gocurl --tls-random " gyufwmGYeIiq0B4nUjEYu3NcqVdlHbIXhx74fq4terc=" https://httpbin.agrd.workers.dev/get`
93+ use a custom TLS ClientHello random value.
9294* ` gocurl -v --ech https://crypto.cloudflare.com/cdn-cgi/trace` enables support
9395 for ECH (Encrypted Client Hello) for the request. More on this [below](# ech).
9496* ` gocurl --dns-servers " tls://dns.google" https://httpbin.agrd.workers.dev/get`
@@ -262,58 +264,41 @@ Usage:
262264 gocurl [OPTIONS]
263265
264266Application Options:
265- --url=<URL> URL the request will be made to. Can be specified
266- without any flags.
267+ --url=<URL> URL the request will be made to. Can be specified without any flags.
267268 -X, --request=<method> HTTP method. GET by default.
268- -d, --data=<data> Sends the specified data to the HTTP server using
269- content type application/x-www-form-urlencoded.
270- -H, --header= Extra header to include in the request. Can be
271- specified multiple times.
272- -x, --proxy=[protocol://username:password@]host[:port] Use the specified proxy. The proxy string can be
273- specified with a protocol:// prefix.
274- --connect-to=<HOST1:PORT1:HOST2:PORT2> For a request to the given HOST1:PORT1 pair, connect
275- to HOST2:PORT2 instead. Can be specified multiple
276- times.
269+ -d, --data=<data> Sends the specified data to the HTTP server using content type application/x-www-form-urlencoded.
270+ -H, --header= Extra header to include in the request. Can be specified multiple times.
271+ -x, --proxy=[protocol://username:password@]host[:port] Use the specified proxy. The proxy string can be specified with a protocol:// prefix.
272+ --connect-to=<HOST1:PORT1:HOST2:PORT2> For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead. Can be specified
273+ multiple times.
277274 -I, --head Fetch the headers only.
278275 -k, --insecure Disables TLS verification of the connection.
279276 --tlsv1.3 Forces gocurl to use TLS v1.3 or newer.
280277 --tlsv1.2 Forces gocurl to use TLS v1.2 or newer.
281- --tls-max=<VERSION> (TLS) VERSION defines maximum supported TLS version.
282- Can be 1.2 or 1.3. The minimum acceptable version is
283- set by tlsv1.2 or tlsv1.3.
278+ --tls-max=<VERSION> (TLS) VERSION defines maximum supported TLS version. Can be 1.2 or 1.3. The minimum acceptable
279+ version is set by tlsv1.2 or tlsv1.3.
284280 --ciphers=<space-separated list of ciphers> Specifies which ciphers to use in the connection, see
285- https://go.dev/src/crypto/tls/cipher_suites.go for the
286- full list of available ciphers.
287- --tls-servername=<HOSTNAME> Specifies the server name that will be sent in TLS
288- ClientHello
281+ https://go.dev/src/crypto/tls/cipher_suites.go for the full list of available ciphers.
282+ --tls-servername=<HOSTNAME> Specifies the server name that will be sent in TLS ClientHello
289283 --http1.1 Forces gocurl to use HTTP v1.1.
290284 --http2 Forces gocurl to use HTTP v2.
291285 --http3 Forces gocurl to use HTTP v3.
292286 --ech Enables ECH support for the request.
293- --echgrease Forces sending ECH grease in the ClientHello, but does
294- not try to resolve the ECH configuration.
295- --echconfig=<base64-encoded data> ECH configuration to use for this request. Implicitly
296- enables --ech when specified.
297- -4, --ipv4 This option tells gocurl to use IPv4 addresses only
298- when resolving host names.
299- -6, --ipv6 This option tells gocurl to use IPv6 addresses only
300- when resolving host names.
301- --dns-servers=<DNSADDR1,DNSADDR2> DNS servers to use when making the request. Supports
302- encrypted DNS: tls://, https://, quic://, sdns://
303- --resolve=<[+]host:port:addr[,addr]...> Provide a custom address for a specific host. port is
304- ignored by gocurl. ' * ' can be used instead of the host
305- name. Can be specified multiple times.
306- --tls-split-hello=<CHUNKSIZE:DELAY> An option that allows splitting TLS ClientHello in two
307- parts in order to avoid common DPI systems detecting
308- TLS. CHUNKSIZE is the size of the first bytes before
309- ClientHello is split, DELAY is delay in milliseconds
310- before sending the second part.
311- --json-output Makes gocurl write machine-readable output in JSON
312- format.
313- -o, --output=<file> Defines where to write the received data. If not set,
314- gocurl will write everything to stdout.
315- --experiment=<name[:value]> Allows enabling experimental options. See the
316- documentation for available options. Can be specified
287+ --echgrease Forces sending ECH grease in the ClientHello, but does not try to resolve the ECH configuration.
288+ --echconfig=<base64-encoded data> ECH configuration to use for this request. Implicitly enables --ech when specified.
289+ -4, --ipv4 This option tells gocurl to use IPv4 addresses only when resolving host names.
290+ -6, --ipv6 This option tells gocurl to use IPv6 addresses only when resolving host names.
291+ --dns-servers=<DNSADDR1,DNSADDR2> DNS servers to use when making the request. Supports encrypted DNS: tls://, https://, quic://,
292+ sdns://
293+ --resolve=<[+]host:port:addr[,addr]...> Provide a custom address for a specific host. port is ignored by gocurl. ' * ' can be used instead of
294+ the host name. Can be specified multiple times.
295+ --tls-split-hello=<CHUNKSIZE:DELAY> An option that allows splitting TLS ClientHello in two parts in order to avoid common DPI systems
296+ detecting TLS. CHUNKSIZE is the size of the first bytes before ClientHello is split, DELAY is delay
297+ in milliseconds before sending the second part.
298+ --tls-random=<base64> Base64-encoded 32-byte TLS ClientHello random value.
299+ --json-output Makes gocurl write machine-readable output in JSON format.
300+ -o, --output=<file> Defines where to write the received data. If not set, gocurl will write everything to stdout.
301+ --experiment=<name[:value]> Allows enabling experimental options. See the documentation for available options. Can be specified
317302 multiple times.
318303 -v, --verbose Verbose output (optional).
319304
0 commit comments