mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-14 05:11:19 -04:00
Modify the periodic stats output by standalone snowflake proxies to only include the data transferred during the time interval being logged. This is an improvement of previous behaviour that logged the total data transferred by all proxy connections that were closed within the time interval being logged.. Closes #40302: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40302 |
||
---|---|---|
.. | ||
lib | ||
main.go | ||
README.md |
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.
Dependencies
- Go 1.15+
- We use the pion/webrtc library for WebRTC communication with Snowflake proxies. Note: running
go get
will fetch this dependency automatically during the build process.
Building the standalone Snowflake proxy
To build the Snowflake proxy, make sure you are in the proxy/
directory, and then run:
go get
go build
Running a standalone Snowflake proxy
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)
-ephemeral-ports-range string
ICE UDP ephemeral ports range (format:"<min>:<max>")
-keep-local-addresses
keep local LAN address ICE candidates
-log string
log filename
-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.
-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.