This guide will walk you through the installation, operation, and maintenance of Snowflake proxy on Linux-based systems. Running a Snowflake proxy is an easy way to contribute to the Tor Project's anti-censorship efforts.

1. Install Go

First you will need to install and configure the Go compiler to build the standalone proxy from source code. Bitte melde dich mit einem Benutzerkonto mit sudo-Rechten oder direkt mit root an (im letzteren Fall lass den sudo-Teil in den folgenden Befehlen weg).

Wenn du Ubuntu oder Debian benutzt, kannst du Go installieren, indem du sudo apt install golang ausführst. Wenn du Fedora, Red Hat oder Amazon Linux mit sudo yum install golang oder sudo dnf install golang verwendest.

You will need Go 1.21 or newer to run the Snowflake proxy. Please check your Go version by using the command go version. Otherwise download Go binary from the official website and follow its installation instructions.

2. Install git and clone Snowflake repository

Second you need the git client to download the Snowflake source code.

Wenn du Ubuntu oder Debian benutzt, kannst du git installieren, indem du sudo apt install git ausführst. Wenn du Fedora, Red Hat oder Amazon Linux mit sudo yum install git oder sudo dnf install git verwendest. Andernfalls konsultiere die Dokumentation deines Betriebssystems.

Please execute the following steps with the user account under which the proxy should be executed. Verwende nicht root.

Es wird empfohlen, ein separatesSnowflake`-Konto mit eingeschränkten Rechten auf dem System zu erstellen.

Open your terminal and clone the source code:

git clone https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git

3. Build Snowflake proxy

After you cloned the repository, you can build Snowflake proxy binary by running the command:

cd snowflake/proxy
go build

4. Run the Snowflake proxy

After your proxy finished to compile, you can run it with the command:

nohup ./proxy &

Note: The command nohup allows the program to run in the background even after the terminal is closed, and & puts the command in the background immediately.

If you want to save the proxy output to a logfile, for example, to see your proxy usage, you can use:

nohup ./proxy >snowflake.log 2>&1 &

5. Make sure the proxy is started after a reboot of the system

Edit your crontab by running the command:

crontab -e

Gib die folgende Zeile ein (Beispiel, passe die Pfade an deine Situation an)

@reboot nohup /home/snowflake/snowflake/proxy/proxy > /home/snowflake/snowflake/proxy/snowflake.log 2>&1 &

Bitte überprüfe, ob dies funktioniert, indem du das System neu startest und das Protokoll checkst. Note: On some Linux installations this might not work.

6. Keep your Snowflake proxy updated

Um deinen Snowflake-Proxy auf dem neuesten Stand zu halten, führe alle paar Wochen die folgenden Befehle aus (melde dich mit dem Benutzerkonto an, das du bei der Installation des Proxys verwendet hast):

kill -9 $(pidof proxy)
cd snowflake/
git pull
cd proxy
go build
nohup ./proxy >snowflake.log 2>&1 &