itchyonion 4ed5da7f2f Simplify proxy NAT checking logic | 6 月之前 | |
---|---|---|
.. | ||
lib | 6 月之前 | |
README.md | 7 月之前 | |
main.go | 6 月之前 |
Table of Contents
This is a standalone (not browser-based) version of the Snowflake proxy. For browser-based versions of the Snowflake proxy, see https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-webext.
go get
will fetch this dependency automatically during the build process.To build the Snowflake proxy, make sure you are in the proxy/
directory, and then run:
go get
go build
The Snowflake proxy can be run with the following options:
Usage of ./proxy:
-allow-non-tls-relay
allow relay without tls encryption
-allowed-relay-hostname-pattern string
a pattern to specify allowed hostname pattern for relay URL. (default "snowflake.torproject.net$")
-broker string
broker URL (default "https://snowflake-broker.torproject.net/")
-capacity uint
maximum concurrent clients (default is to accept an unlimited number of clients)
-disableStatsLogger
disable the exposing mechanism for stats using logs
-ephemeral-ports-range string
ICE UDP ephemeral ports range (format:"<min>:<max>")
-enableMetrics
enable the exposing mechanism for stats using metrics at "/internal/metrics"
-keep-local-addresses
keep local LAN address ICE candidates
-log string
log filename
-metricsAddress string
set listening address for metrics service by either hostname or ip-address (default localhost)
-metricsPort
set port for the metrics service (default 9999)
-nat-retest-interval duration
the time interval in second before NAT type is retested, 0s disables retest. Valid time units are "s", "m", "h". (default 24h0m0s)
-relay string
websocket relay URL (default "wss://snowflake.torproject.net/")
-outbound-address string
bind a specific outbound address. Replace all host candidates with this address without validation.
-probeURL string
NAT check probe server URL (default "https://snowflake-broker.torproject.net:8443/probe")
-stun string
stun URL (default "stun:stun.l.google.com:19302")
-summary-interval duration
the time interval to output summary, 0s disables summaries. Valid time units are "s", "m", "h". (default 1h0m0s)
-unsafe-logging
prevent logs from being scrubbed
-verbose
increase log verbosity
-version
display version info to stderr and quit
For more information on how to run a Snowflake proxy in deployment, see our community documentation.