Эти рекомендации помогут настроить автономный прокси Snowflake на сервере для помощи пользователям, ограниченным цензурой, подключаться к сети Tor.
Единственным требованием является подключение к Интернету, однако одним из основных преимуществ автономных прокси Snowflake является то, что они могут быть установлены на серверах и предлагают более высокую пропускную способность и более надежный вариант для пользователей за ограничительными NAT и брандмауэрами.
Поэтому мы особенно рекомендуем:
- подключение к Интернету 24/7
- Full cone NAT (вы можете использовать этот инструмент, чтобы проверить тип вашего NAT.
Свойства, которые вы ищете, – это независимое от адреса сопоставление и либо независимая от адреса, либо зависимая от адреса фильтрация)
- A server behind no or unrestricted NAT, with incoming UDP on the whole port range of
cat /proc/sys/net/ipv4/ip_local_port_range
open (or the range set using the optional -ephemeral-ports-range
flag).
Существует несколько способов настройки и запуска автономного прокси-сервера Snowflake.
Настройка Docker
Для начала необходимо установить Docker и docker-compose.
У нас есть Docker image, чтобы упростить настройку прокси-сервера Snowflake.
Сначала скачайте docker-compose.yml.
Затем разверните прокси-сервер, выполнив:
docker-compose up -d snowflake-proxy
После этого вы увидите следующее:
Creating snowflake-proxy ... done
ваш прокси запущен и работает!
The docker-compose.yml contains a watchtower
container, configured to automatically check for updates to the snowflake docker container every day, download them and run them.
So if you are using that, your snowflake proxy will stay updated automatically!
Otherwise, you will need to periodically pull the latest container and restart it manually.
Ansible
Теперь есть Ansible-роль для установки прокси Snowflake на Debian, Fedora, Arch Linux, FreeBSD и Ubuntu, созданная Jacobo Nájera.
Следуйте инструкциям, чтобы запустить Snowflake с Ansible.
Компиляция и запуск из исходного кода
Для начала вам потребуется установить и настроить компилятор Go для того, чтобы собрать прокси из исходных кодов.
Please login using a user account with sudo
rights or directly with root
(in the later case omit the sudo
part in the following commands).
Если вы работаете на Ubuntu или Debian, вы можете установить Go при помощи команды sudo apt install golang
.
Если вы используете Fedora, Red Hat или Amazon Linux, используйте sudo yum install golang
или sudo dnf install golang
.
В противном случае посетите https://golang.org/dl/.
You will need Go 1.20 or newer to run the Snowflake proxy.
Для проверки установленной версии воспользуйтесь командой go version
.
Вам потребуется git-клиент для загрузки исходных кодов Snowflake.
Please login using a user account with sudo
rights or directly with root
(in the later case omit the sudo
part of the following commands).
Если вы работаете на Ubuntu или Debian, вы можете установить git при помощи команды sudo apt install git
.
Если вы используете Fedora, Red Hat или Amazon Linux, используйте sudo yum install git
или sudo dnf install git
.
В случае использования другого дистрибутива обратитесь к документации по используемому пакетному менеджеру.
Пожалуйста, выполняйте следующие шаги под аккаунтом, под которым должен запускаться прокси-сервер.
Не используйте root
.
Мы рекомендуем создать отдельного пользователя snowflake
с ограниченными правами.
Скопируйте исходные коды.
git clone https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
Скомпилируйте Snowflake.
cd snowflake/proxy
go build
Запустите Snowflake.
nohup ./proxy &
Если вам надо сохранить вывод прокси в файл журнала, вы можете использовать команду:
nohup ./proxy >snowflake.log 2>&1 &
Обеспечьте запуск прокси после включения системы:
crontab -e
Введите следующую строку (пример, измените путь в соответствии с настройкам вашей системы)
@reboot nohup /home/snowflake/snowflake/proxy/proxy > /home/snowflake/snowflake/proxy/snowflake.log 2>&1 &
Пожалуйста, проверьте, что это сработало: перезагрузите систему и проверьте логи.
On some Linux installations this might not work.
Для поддержания актуальности прокси snowflake, периодически выполняйте предложенные команды раз в несколько недель под аккаунтом, использованным во время установки прокси:
kill -9 $(pidof proxy)
cd snowflake/
git pull
cd proxy
go build
nohup ./proxy >snowflake.log 2>&1 &