mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 11:11:30 -04:00
update README
This commit is contained in:
parent
e93c38f834
commit
c1f623948b
2 changed files with 32 additions and 23 deletions
53
README.md
53
README.md
|
@ -2,29 +2,32 @@
|
||||||
|
|
||||||
[](https://travis-ci.org/keroserene/snowflake)
|
[](https://travis-ci.org/keroserene/snowflake)
|
||||||
|
|
||||||
A Pluggable Transport using WebRTC, inspired by Flashproxy
|
Pluggable Transport using WebRTC, inspired by Flashproxy.
|
||||||
|
|
||||||
|
### Status
|
||||||
|
|
||||||
|
- [x] Transport: Successfully connects using WebRTC.
|
||||||
|
- [x] Rendezvous: HTTP signaling (with optional domain fronting) to the Broker
|
||||||
|
arranges peer-to-peer connections with multitude of volunteer "snowflakes".
|
||||||
|
- [x] Client multiplexes remote snowflakes.
|
||||||
|
- [x] Can browse using Tor over Snowflake.
|
||||||
|
- [ ] Reproducible build with TBB.
|
||||||
|
|
||||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||||
**Table of Contents**
|
**Table of Contents**
|
||||||
|
|
||||||
- [Status](#status)
|
|
||||||
- [Usage](#usage)
|
- [Usage](#usage)
|
||||||
- [Dependencies](#dependencies)
|
- [Dependencies](#dependencies)
|
||||||
- [More Info](#more-info)
|
- [More Info](#more-info)
|
||||||
- [Building a Snowflake](#building-a-snowflake)
|
- [Building](#building)
|
||||||
|
- [FAQ](#faq)
|
||||||
- [Appendix](#appendix)
|
- [Appendix](#appendix)
|
||||||
|
- [-- Testing Copy-Paste Via Browser Proxy --](#---testing-copy-paste-via-browser-proxy---)
|
||||||
- [-- Testing directly via WebRTC Server --](#---testing-directly-via-webrtc-server---)
|
- [-- Testing directly via WebRTC Server --](#---testing-directly-via-webrtc-server---)
|
||||||
- [-- Via Browser Proxy --](#---via-browser-proxy---)
|
|
||||||
|
|
||||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
|
|
||||||
### Status
|
|
||||||
|
|
||||||
Successfully & automatically bootstraps with a WebRTC transport, using HTTP
|
|
||||||
signaling (with optional domain fronting) speaking to a multitude of volunteer
|
|
||||||
"snowflakes". Still lots of work to do.
|
|
||||||
|
|
||||||
### Usage
|
### Usage
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -38,7 +41,7 @@ This should start the client plugin, bootstrapping to 100% using WebRTC.
|
||||||
#### Dependencies
|
#### Dependencies
|
||||||
|
|
||||||
Client:
|
Client:
|
||||||
- [go-webrtc](https://github.com/keroserene/go-webrtc).
|
- [go-webrtc](https://github.com/keroserene/go-webrtc)
|
||||||
- Go 1.5+
|
- Go 1.5+
|
||||||
|
|
||||||
Proxy:
|
Proxy:
|
||||||
|
@ -48,19 +51,22 @@ Proxy:
|
||||||
|
|
||||||
#### More Info
|
#### More Info
|
||||||
|
|
||||||
The client uses the following `torrc` options:
|
Tor can plug in the Snowflake client via a correctly configured `torrc`.
|
||||||
|
For example:
|
||||||
|
|
||||||
```
|
```
|
||||||
ClientTransportPlugin snowflake exec ./client \
|
ClientTransportPlugin snowflake exec ./client \
|
||||||
-url https://snowflake-reg.appspot.com/ \
|
-url https://snowflake-reg.appspot.com/ \
|
||||||
-front www.google.com \
|
-front www.google.com \
|
||||||
-ice stun:stun.l.google.com:19302
|
-ice stun:stun.l.google.com:19302
|
||||||
|
-max 3
|
||||||
```
|
```
|
||||||
|
|
||||||
Which allows it to speak to the Broker,
|
The flags `-url` and `-front` allow the Snowflake client to speak to the Broker,
|
||||||
get matched with a "snowflake" browser proxy,
|
in order to get connected with some volunteer's browser proxy. `-ice` is a
|
||||||
and negotiate a WebRTC PeerConnection.
|
comma-separated list of ICE servers, which are required for NAT traversal.
|
||||||
|
|
||||||
To see logs, do `tail -F snowflake.log` in a second terminal.
|
For logging, run `tail -F snowflake.log` in a second terminal.
|
||||||
|
|
||||||
You can modify the `torrc` to use your own broker,
|
You can modify the `torrc` to use your own broker,
|
||||||
or remove the options entirely which will default to the old copy paste
|
or remove the options entirely which will default to the old copy paste
|
||||||
|
@ -71,11 +77,13 @@ ClientTransportPlugin snowflake exec ./client --meek
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
#### Building a Snowflake
|
#### Building
|
||||||
|
|
||||||
This will only work if there are any browser snowflakes running at all.
|
This describes how to build the in-browser snowflake. For the client, see Usage,
|
||||||
To run your own, first make sure coffeescript is installed.
|
above.
|
||||||
Then, build with:
|
|
||||||
|
The client will only work if there are browser snowflakes available.
|
||||||
|
To run your own:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd proxy/
|
cd proxy/
|
||||||
|
@ -91,8 +99,9 @@ cd build/
|
||||||
python -m http.server
|
python -m http.server
|
||||||
```
|
```
|
||||||
|
|
||||||
Then, open a browser tab to `http://127.0.0.1:8000/snowflake.html`,
|
Then, open a browser tab to `http://127.0.0.1:8000/snowflake.html` to view
|
||||||
which causes you to act as an ephemeral Tor bridge.
|
the debug-console of the snowflake.,
|
||||||
|
So long as that tab is open, you are an ephemeral Tor bridge.
|
||||||
|
|
||||||
### FAQ
|
### FAQ
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,6 @@ ClientTransportPlugin snowflake exec ./client \
|
||||||
-url https://snowflake-reg.appspot.com/ \
|
-url https://snowflake-reg.appspot.com/ \
|
||||||
-front www.google.com \
|
-front www.google.com \
|
||||||
-ice stun:stun.l.google.com:19302 \
|
-ice stun:stun.l.google.com:19302 \
|
||||||
-max 4
|
-max 3
|
||||||
|
|
||||||
Bridge snowflake 0.0.3.0:1
|
Bridge snowflake 0.0.3.0:1
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue