mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 20:11:19 -04:00
70 lines
1.6 KiB
Markdown
70 lines
1.6 KiB
Markdown
# snowflake-pt
|
|
|
|
A Pluggable Transport using WebRTC
|
|
|
|
### Status
|
|
|
|
- Successfully bootstraps over WebRTC, both directly to a server plugin,
|
|
as well as through the browser which proxies WebRTC to websocket.
|
|
- Needs work on signaling with the facilitator.
|
|
|
|
### Usage
|
|
|
|
There are currently two ways to try this:
|
|
- Directly to the go-webrtc server plugin.
|
|
- Through a browser snowflake proxy.
|
|
|
|
Setting up the client is the same in both cases.
|
|
Open up three terminals for the **client:**
|
|
|
|
```
|
|
cd client/
|
|
go build
|
|
```
|
|
|
|
A: tor -f torrc SOCKSPort auto
|
|
|
|
B: cat > signal
|
|
|
|
C: tail -F snowflake.log
|
|
|
|
Now, to connect directly to a server plugin:
|
|
|
|
Open up another three terminals for the **server:**
|
|
|
|
```
|
|
cd server/
|
|
go build
|
|
```
|
|
|
|
D: tor -f torrc
|
|
|
|
E: cat > signal
|
|
|
|
F: tail -F snowflake.log
|
|
|
|
Look for the offer in terminal C; copy and paste it into terminal E.
|
|
Copy and paste the answer in terminal F to terminal B.
|
|
At this point the tor client should bootstrap to 100%.
|
|
|
|
#### Snowflake proxy
|
|
|
|
Otherwise, to connect through the WebRTC proxy in the browser, start a local
|
|
http server in the `proxy/` directory however you wish. For instance:
|
|
```
|
|
cd proxy/
|
|
python -m http.server
|
|
```
|
|
Open a browser tab to `0.0.0.0:8000/snowflake.html`.
|
|
The page will ask you to input a relay.
|
|
Input your desired relay address, or input nothing/gibberish which will cause
|
|
snowflake to use a default relay.
|
|
|
|
Look for the offer in terminal C; copy and paste it into the browser.
|
|
Copy and paste the answer generated in the browser back to terminal B.
|
|
At this point the tor client should bootstrap to 100%.
|
|
|
|
|
|
### More
|
|
|
|
More documentation on the way.
|