... | ... | @@ -2,17 +2,17 @@ |
|
|
|
|
|
|
|
|
## Overview
|
|
|
Snowflake is a [[PluggableTransports|pluggable transport]] that proxies traffic through temporary proxies using [WebRTC](https://webrtc.org/), a peer-to-peer protocol with built-in NAT punching. It aims to work kind of like flash proxy, but without flash proxy's problems with NAT.
|
|
|
Snowflake is a [pluggable transport](https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports) that proxies traffic through temporary proxies using [WebRTC](https://webrtc.org/), a peer-to-peer protocol with built-in NAT punching. It aims to work kind of like flash proxy, but without flash proxy's problems with NAT.
|
|
|
|
|
|
Work in progress.
|
|
|
|
|
|
* [https://lists.torproject.org/pipermail/tor-dev/2016-January/010310.html "[tor-dev] Introducing Snowflake (webrtc pt)"]
|
|
|
* [[tor-dev] Introducing Snowflake (webrtc pt)](https://lists.torproject.org/pipermail/tor-dev/2016-January/010310.html)
|
|
|
* [technical writeup](https://keroserene.net/snowflake/technical/)
|
|
|
* [thesis chapter](https://www.bamsoftware.com/papers/thesis/#chap:snowflake)
|
|
|
|
|
|
User graph: https://metrics.torproject.org/userstats-bridge-transport.html?transport=snowflake.
|
|
|
|
|
|
Evaluation at [[PluggableTransports/SnowFlakeEvaluation]].
|
|
|
Evaluation at [PluggableTransports/SnowFlakeEvaluation](https://trac.torproject.org/projects/tor/wiki/doc/PluggableTransports/SnowFlakeEvaluation).
|
|
|
|
|
|
[欢迎测试 Tor 浏览器的新网桥 (目前仅支持 Mac OS X 与 Linux)](http://www.chinagfw.org/2017/08/tor.html) (#22782 has been fixed, it needs to be retested now)
|
|
|
|
... | ... | @@ -27,32 +27,35 @@ In a browser where WebRTC is enabled: |
|
|
1. Go to https://snowflake.torproject.org/embed and toggle the button to opt in to being a proxy. You shouldn't close that page if you want to remain a snowflake bridge.
|
|
|
|
|
|
### Option 3 (standalone)
|
|
|
0. First you will need to install and configure Go to build the standalone proxy-go code. If you are running Ubuntu or Debian, you can install Go by executing `apt install golang`. Otherwise visit [[https://golang.org/dl/]]. Once it is installed, set up your workspace and environment variables (more detailed instructions here: [https://golang.org/doc/code.html#Workspaces]).
|
|
|
0. First you will need to install and configure Go to build the standalone proxy-go code. If you are running Ubuntu or Debian, you can install Go by executing `apt install golang`. Otherwise visit https://golang.org/dl/. Once it is installed, set up your workspace and environment variables (more detailed instructions here: https://golang.org/doc/code.html#Workspaces).
|
|
|
```
|
|
|
mkdir -p ~/go/src
|
|
|
echo "export GOPATH=$HOME/go" >> ~/.bash_profile
|
|
|
source ~/.bash_profile
|
|
|
}}}
|
|
|
1. Clone the [[#Source code]] the `src/` directory of your workspace.
|
|
|
{{{
|
|
|
```
|
|
|
1. Clone the [source code](#source-code) the `src/` directory of your workspace.
|
|
|
```
|
|
|
cd $GOPATH/src
|
|
|
git clone https://git.torproject.org/pluggable-transports/snowflake.git
|
|
|
}}}
|
|
|
```
|
|
|
2. Get the dependencies and build the source code.
|
|
|
{{{
|
|
|
```
|
|
|
cd snowflake
|
|
|
cd proxy
|
|
|
go get
|
|
|
go build
|
|
|
}}}
|
|
|
```
|
|
|
3. For our fallback proxy-go instances on snowflake-broker, [we manage proxy-go instances using runit](https://trac.torproject.org/projects/tor/wiki/org/teams/AntiCensorshipTeam/SnowflakeBridgeSurvivalGuide#Standaloneproxy-goinstances). However, a simpler nohup command will also allow you to run an instance in the background.
|
|
|
`nohup ./proxy &`
|
|
|
```
|
|
|
nohup ./proxy &
|
|
|
```
|
|
|
|
|
|
## Source code
|
|
|
https://gitweb.torproject.org/pluggable-transports/snowflake.git
|
|
|
|
|
|
The following should result in a 100% bootstrap over WebRTC:
|
|
|
|
|
|
{{{
|
|
|
```
|
|
|
git clone https://git.torproject.org/pluggable-transports/snowflake.git
|
|
|
cd snowflake/client
|
|
|
go get
|
... | ... | @@ -65,10 +68,10 @@ tor -f torrc |
|
|
|
|
|
Further integration of Snowflake into Tor Browser is being tracked at ticket #19001.
|
|
|
|
|
|
To build from source code, see [[doc/TorBrowser/Hacking]]. In the tor-browser-build directory, `make alpha` or `make testbuild` will result in browsers with included Snowflake.
|
|
|
To build from source code, see [doc/TorBrowser/Hacking](https://trac.torproject.org/projects/tor/wiki/doc/TorBrowser/Hacking). In the tor-browser-build directory, `make alpha` or `make testbuild` will result in browsers with included Snowflake.
|
|
|
|
|
|
## WebRTC fingerprintability
|
|
|
Notes at [[Snowflake/Fingerprinting]].
|
|
|
Notes at [Snowflake/Fingerprinting](https://trac.torproject.org/projects/tor/wiki/doc/Snowflake/Fingerprinting).
|
|
|
|
|
|
## Reporting bugs
|
|
|
If you encounter problems with Snowflake as a client or a proxy, please [file a ticket](https://trac.torproject.org/projects/tor/newticket?component=Circumvention%2FSnowflake) using our bug tracker. To do so, you will have to [create an account](https://trac.torproject.org/projects/tor/register) or log in using the shared **cypherpunks** account with password **writecode**.
|
... | ... | |