OS Manuals

/usr/bin/smokescreen

A simple HTTP proxy that fogs over naughty URLs

From smokescreen 0_git20261107-r0 (os), captured 2026-11-09 by running smokescreen --help (exit 0). permalink

NAME:
   smokescreen - A simple HTTP proxy that prevents SSRF and can restrict destinations

USAGE:
   smokescreen [global options]

VERSION:
   v0.1.1-0.20261103182740-5b4b7aabca9b

GLOBAL OPTIONS:
   --config-file FILE                                                                       Load configuration from FILE.  Command line options override values in the file.
   --listen-ip IP                                                                           Listen on interface with address IP.
                                                                                              This argument is ignored when running under Einhorn. (default: any)
   --listen-port PORT                                                                       Listen on port PORT.
                                                                                              This argument is ignored when running under Einhorn. (default: 4750)
   --timeout DURATION                                                                       Time out after DURATION when connecting. (default: 10s)
   --proxy-protocol                                                                         Enable PROXY protocol support.
   --allow-self-connections                                                                 Allow connections to local interface addresses on all ports, subject to normal IP and ACL checks (default: false).
   --most-specific-ip-rules                                                                 Resolve overlapping IP rules by longest prefix, then port specificity; deny wins ties (default: false).
   --deny-range RANGE [ --deny-range RANGE ]                                                Add RANGE(in CIDR notation) to list of blocked IP ranges.  Repeatable.
   --unsafe-ip-filter-bypassed-domain string [ --unsafe-ip-filter-bypassed-domain string ]  Bypass IP filters for destination hostname or *.domain glob; ACL and self-connection checks still apply. Trust this domain's DNS. Repeatable.
   --allow-range RANGE [ --allow-range RANGE ]                                              Add RANGE (in CIDR notation) to list of allowed IP ranges.  Repeatable.
   --deny-address string [ --deny-address string ]                                          Add IP[:PORT] to list of blocked IPs.  Repeatable.
   --allow-address string [ --allow-address string ]                                        Add IP[:PORT] to list of allowed IPs.  Repeatable.
   --egress-acl-file FILE                                                                   Validate egress traffic against FILE
   --expose-prometheus-metrics                                                              Expose metrics via prometheus.
   --prometheus-metrics-format string                                                       Prometheus metrics format: legacy, dual, or v2. Requires --expose-prometheus-metrics. (default: "legacy")
   --prometheus-endpoint ENDPOINT                                                           Expose prometheus metrics on ENDPOINT. Requires --expose-prometheus-metrics to be set. (default: "/metrics")
   --prometheus-listen-ip string                                                            Listen for prometheus metrics on interface with address IP. Requires --expose-prometheus-metrics to be set. (default: "0.0.0.0")
   --prometheus-port PORT                                                                   Expose prometheus metrics on PORT. Requires --expose-prometheus-metrics to be set. (default: "9810")
   --resolver-address ADDRESS [ --resolver-address ADDRESS ]                                Make DNS requests to ADDRESS (IP:port). Repeatable. Each DNS exchange picks an address at random.
   --statsd-address ADDRESS                                                                 Send metrics to statsd at ADDRESS (IP:port). (default: "127.0.0.1:8200")
   --metric-tag KEY=VALUE                                                                   Add default metric tag KEY=VALUE to every metric. Repeatable; replaces metrics_tags from --config-file.
   --tls-server-bundle-file FILE                                                            Authenticate to clients using key and certs from FILE
   --tls-client-ca-file FILE [ --tls-client-ca-file FILE ]                                  Validate client certificates using Certificate Authority from FILE
   --tls-crl-file FILE [ --tls-crl-file FILE ]                                              Verify validity of client certificates against Certificate Revocation List from FILE
   --additional-error-message-on-deny MESSAGE                                               Display MESSAGE in the HTTP response if proxying request is denied
   --disable-acl-policy-action POLICY ACTION [ --disable-acl-policy-action POLICY ACTION ]  Disable usage of a POLICY ACTION such as "open" in the egress ACL
   --stats-socket-dir DIR                                                                   Enable connection tracking. Will expose one UDS in DIR going by the name of "track-{pid}.sock".
                                                                                              This should be an absolute path with all symlinks, if any, resolved.
   --stats-socket-file-mode FILE_MODE                                                       Set the filemode to FILE_MODE on the statistics socket (default: "700")
   --unsafe-allow-private-ranges                                                            Allow private ip ranges by default
   --upstream-http-proxy-addr string                                                        Set Smokescreen's upstream HTTP proxy address
   --upstream-https-proxy-addr string                                                       Set Smokescreen's upstream HTTPS proxy address
   --max-concurrent-requests int                                                            Maximum number of requests that can be processed simultaneously.
                                                                                              0 = unlimited (default). (default: 0)
   --max-request-rate float                                                                 Maximum number of requests per second.
                                                                                              0 = unlimited (default). (default: 0)
   --max-request-burst int                                                                  Maximum burst capacity for rate limiting.
                                                                                              Must be greater than max-request-rate when specified.
                                                                                              Omit to use default (2x max-request-rate). (default: -1)
   --max-concurrent-connect-tunnels int                                                     Maximum number of concurrent CONNECT tunnels.
                                                                                              Unlike max-concurrent-requests, this limits actual long-lived connections.
                                                                                              0 = unlimited (default). (default: 0)
   --dns-timeout duration                                                                   Maximum time to wait for DNS resolution. (default: 5s)
   --help, -h                                                                               show help
   --version, -v                                                                            print the version
Options (38)
OptionDescriptionSource
--config-file FILELoad configuration from FILE.help
--listen-ip IPListen on interface with address IP.help
--listen-port PORTListen on port PORT.help
--timeout DURATIONTime out after DURATION when connecting.help
--proxy-protocolEnable PROXY protocol support.help
--allow-self-connectionsAllow connections to local interface addresses on all ports, subject to normal IP and ACL checks (default: false).help
--most-specific-ip-rulesResolve overlapping IP rules by longest prefix, then port specificity;help
--deny-range RANGEAdd RANGE(in CIDR notation) to list of blocked IP ranges.help
--unsafe-ip-filter-bypassed-domain stringBypass IP filters for destination hostname or *.domain glob;help
--allow-range RANGEAdd RANGE (in CIDR notation) to list of allowed IP ranges.help
--deny-address stringAdd IP[:PORT] to list of blocked IPs.help
--allow-address stringAdd IP[:PORT] to list of allowed IPs.help
--egress-acl-file FILEValidate egress traffic against FILEhelp
--expose-prometheus-metricsExpose metrics via prometheus.help
--prometheus-metrics-format stringPrometheus metrics format: legacy, dual, or v2.help
--prometheus-endpoint ENDPOINTExpose prometheus metrics on ENDPOINT.help
--prometheus-listen-ip stringListen for prometheus metrics on interface with address IP.help
--prometheus-port PORTExpose prometheus metrics on PORT.help
--resolver-address ADDRESSMake DNS requests to ADDRESS (IP:port).help
--statsd-address ADDRESSSend metrics to statsd at ADDRESS (IP:port).help
--metric-tag KEY=VALUEAdd default metric tag KEY=VALUE to every metric.help
--tls-server-bundle-file FILEAuthenticate to clients using key and certs from FILEhelp
--tls-client-ca-file FILEValidate client certificates using Certificate Authority from FILEhelp
--tls-crl-file FILEVerify validity of client certificates against Certificate Revocation List from FILEhelp
--additional-error-message-on-deny MESSAGEDisplay MESSAGE in the HTTP response if proxying request is deniedhelp
--disable-acl-policy-action POLICYDisable usage of a POLICY ACTION such as "open" in the egress ACLhelp
--stats-socket-dir DIREnable connection tracking.help
--stats-socket-file-mode FILE_MODESet the filemode to FILE_MODE on the statistics socket (default: "700")help
--unsafe-allow-private-rangesAllow private ip ranges by defaulthelp
--upstream-http-proxy-addr stringSet Smokescreen's upstream HTTP proxy addresshelp
--upstream-https-proxy-addr stringSet Smokescreen's upstream HTTPS proxy addresshelp
--max-concurrent-requests intMaximum number of requests that can be processed simultaneously.help
--max-request-rate floatMaximum number of requests per second.help
--max-request-burst intMaximum burst capacity for rate limiting.help
--max-concurrent-connect-tunnels intMaximum number of concurrent CONNECT tunnels.help
--dns-timeout durationMaximum time to wait for DNS resolution.help
--help, -hshow helphelp
--version, -vprint the versionhelp

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.