snowflake/proxy
Tommaso Gragnato 9ce1de4eee Use Pion's Setting Engine to reduce Multicast DNS noise
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40123

The purpose of the patch is to prevent Pion from opening the mDNS port,
thus preventing snowflake from directly leaking .local candidates.

What this doesn't prevent is the resolution of .local candidates
once they are passed on to the system DNS.
2022-09-26 08:52:23 -07:00
..
lib Use Pion's Setting Engine to reduce Multicast DNS noise 2022-09-26 08:52:23 -07:00
main.go Fix proxy command line help output 2022-09-26 10:37:29 -04:00
README.md Unify broker/bridge domains to torproject.net 2021-10-14 11:14:22 -04:00

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.13+
  • 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:
  -broker string
        broker URL (default "https://snowflake-broker.torproject.net/")
  -capacity uint
        maximum concurrent clients
  -keep-local-addresses
        keep local LAN address ICE candidates
  -log string
        log filename
  -relay string
        websocket relay URL (default "wss://snowflake.torproject.net/")
  -stun string
        stun URL (default "stun:stun.stunprotocol.org:3478")
  -unsafe-logging
        prevent logs from being scrubbed

For more information on how to run a Snowflake proxy in deployment, see our community documentation.