git clone https://github.com/ssheikholeslami/tor-snowflake-standalone-script.gitcd tor-snowflake-standalone-scriptchmod +x install_snowflake.sh run_snowflake_proxy.sh./install_snowflake.sh./run_snowflake_proxy.shtail -f logs/snowflake-logs.out
We've provided simple bash scripts for simple setup and running a standalone Snowflake proxy docker container for Tor.
The first script (install_snowflake.sh) installs Docker (if not installed) and Snowflake. The second script (run_snowflake_proxy.sh) spins up the container and runs Snowflake with some parameters for better logging.
In case you need more information, please consult with Snowflake Docker guide and Snowflake's repo (for more on the parameters).
These scripts have been tested on Ubuntu 24.04.3 LTS.
- Clone this repo using
git clone https://github.com/ssheikholeslami/tor-snowflake-standalone-script.gitor simply copy and paste the contents of the scripts into separate files on your server. For the following steps I'm assuming you'll keep the filenames the same as in the repo. cd tor-snowflake-standalone-scriptchmod +x install_snowflake.sh run_snowflake_proxy.sh./install_snowflake.sh- this installs Docker (if not installed) and Snowflake. Upon successful setup:./run_snowflake_proxy.sh. This runs the container and logs the output tologs/snowflake-logs.out. The default interval for logs is set to 1 minute, but you can change it, e.g., for 30 seconds intervals./run_snowflake_proxy.sh -i 30s- You can view the logs with, e.g.,
tail -f logs/snowflake-logs.out.
Note that it might take a few minutes for the first connections to establish. Servers hosted in Europe are recommended for better service to Iran.
You can also run Snowflake on your own Mac. For this, you need to:
- Install Docker Desktop if you don't already have Docker;
- Open a terminal (e.g., type
Terminalin Spotlight Search) - Get the Docker Compose file for Snowflake:
curl -o docker-compose.yml "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/raw/main/docker-compose.yml?ref_type=heads" docker compose run -d --name snowflake-proxy snowflake-proxy -summary-interval 1m(you can change the logging interval to different values, e.g.,1h,1h20m,30m,42s)- You can then check the logs through the Docker Desktop app and clicking on the
snowflake-proxycontainer. - To stop the container:
docker stop snowflake-proxyand to start it again with the previous settings:docker start snowflake-proxy.