Это руководство поможет вам настроить мост WebTunnel, чтобы помочь подвергнутым цензуре пользователям подключаться к сети Tor. WebTunnel — это подключаемый транспорт, который пытается имитировать действия по просмотру веб-страниц на основе HTTPT.

Требования для развертывания моста WebTunnel:

  1. Статический IPv4 (желательно);
  2. Возможность выставлять TCP-порты в Интернет (убедитесь, что NAT не мешает);
  3. Самостоятельный веб-сайт, включающий настраиваемый веб-сервер (например, NGINX или Apache) и домен под вашим контролем;
  4. A valid TLS certificate;
  5. At least 1 GB of memory RAM (4 GB recommended) to support the Tor process and WebTunnel transport.

For more details on system requirements, we recommend reading the Tor relay requirements page.

Развертывание моста WebTunnel включает настройку веб-сервера и моста Tor с использованием этого подключаемого транспорта. В первой части этого руководства представлены подробные инструкции по настройке веб-сервера для поддержки WebTunnel. Во второй части вы будете выбирать между двумя методами запуска моста WebTunnel: либо с помощью Docker, либо путем компиляции из исходного кода.

Обратите внимание: если вы не соответствуете требованиям для запуска моста WebTunnel или obfs4, запуск Snowflake proxy — это отличный способ пожертвовать свою пропускную способность, чтобы помочь пользователям обойти цензуру.

Конфигурация веб-сервера

Шаг 1. Настройте свой домен

Если у вас уже есть домен веб-сайта, вы можете использовать основной домен или создать субдомен. В этом руководстве мост WebTunnel размещен на том же сервере, что и ваш веб-сайт, но его можно разместить на другом сервере.

Шаг 2. Получите действующий сертификат

Если у вашего веб-сайта нет сертификата TLS, вы можете получить его с помощью acme.sh, который представляет собой клиент протокола ACME, написанный на языке Shell. .

2.1. Установить ACME

Замените my@example.com на свой адрес электронной почты:

$ curl https://get.acme.sh | sh -s email=my@example.com

Или

$ wget -O - https://get.acme.sh | sh -s email=my@example.com

2.2. Выдать сертификат

Замените example.com на домен вашего сайта.

$ ~/.acme.sh/acme.sh --issue --standalone --domain example.com

Шаг 3. Установите NGINX

Чтобы сосуществовать с другим контентом на одном порту, вам следует установить обратный прокси-сервер, например NGINX. Установите НГИНКС:

$ sudo apt install nginx

Шаг 4. Настройте NGINX

4.1. Создать случайную строку

Когда клиенты подключаются к вашему веб-серверу, они будут перенаправлены на ваш прокси-сервер WebTunnel, если используют секретный путь. Вы можете сгенерировать случайную строку, выполнив эту команду:

$ echo $(cat /dev/urandom | tr -cd "qwertyuiopasdfghjklzxcvbnmMNBVCXZLKJHGFDSAQWERTUIOP0987654321"|head -c 24)

4.2. Создайте или отредактируйте виртуальный хост NGINX

Создайте новый файл vhost, например /etc/nginx/sites-available/webtunnel-vhost, который перенаправляет трафик на мост WebTunnel. Вот полный виртуальный хост NGINX с примером WebTunnel.

Или, если вы хотите использовать существующий виртуальный хост, вы можете просто отредактировать и добавить к нему блок location {}. Замените $PATH случайной строкой.

# Пример блока vhost NGINX
location = /$PATH {
        proxy_pass http://127.0.0.1:15000;
        proxy_http_version 1.1;

        ### Установка заголовков WebSocket ###
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        ### Установка заголовков прокси ###
        proxy_set_header        Accept-Encoding   "";
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        add_header              Front-End-Https   on;

        proxy_redirect     off;
        access_log  off;
        error_log /dev/null;
}

4.3. Проверьте конфигурацию виртуального хоста и перезагрузите NGINX

sudo ln -s /etc/nginx/sites-available/webtunnel-vhost /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Шаг 5. Настройте мост Tor WebTunnel

Поздравляем! Вы успешно настроили свой веб-сервер для прокси-запросов к вашему мосту Tor. Теперь вам необходимо установить и настроить мост для получения этих запросов от веб-сервера. Пожалуйста, следуйте второй части этого руководства. У вас есть два варианта: либо скомпилировать двоичный файл Go из source, либо использовать Docker.

Настройка WebTunnel Docker

Как запустить мост WebTunnel в Docker

Скомпилируйте и запустите WebTunnel из исходного кода

Как запустить мост WebTunnel из исходного кода