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. لطفاً با استفاده از حساب‌کاربری به‌همراه امتیازات sudo یا مستقیماً به‌وسیلهٔ root (که در این صورت sudo را در فرمان‌های زیر از قلم بیندازید) وارد شوید.

اگر درحال اجرای Ubuntu یا Debian هستید، می‌توانید با اجرای sudo apt install golang‏، Go را نصب کنید. اگر از Fedora ،‏Red Hat یا Amazon Linux استفاده می‌کنید، sudo yum install golang یا sudo dnf install golang را اجرا کنید.

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.

اگر درحال اجرای Ubuntu یا Debian هستید، می‌توانید git را با اجرای sudo apt install git نصب کنید. اگر از Fedora ،‏Red Hat یا Amazon Linux استفاده می‌کنید،sudo yum install gitیاsudo dnf install git` را اجرا کنید. در غیر این صورت برای سیستم‌عامل خود از اسناد موجود مشاوره بگیرید.

Please execute the following steps with the user account under which the proxy should be executed. از root استفاده نکنید.

توصیه می‌شود روی سامانه حساب snowflake جداگانه‌ای با امتیازات محدود ایجاد کنید.

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

سطر زیر را وارد کنید (مثال، مسیر‌ها را با وضعیت خودتان سازگار کنید)

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

لطفاً کارکردن این مورد را با بازراه‌اندازی سامانه و بررسی رویدادنگار، تأیید کنید. Note: On some Linux installations this might not work.

6. Keep your Snowflake proxy updated

برای اینکه پروکسی snowflake را به‌روز نگه دارید، فرمان زیر را هر چند هفته یک‌بار اجرا کنید (با حساب‌کاربری استفاده‌شده هنگام نصب پروکسی وارد شوید):

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