Подготовка VPS и переменные
# Обновления и базовые инструментыsudo apt update && sudo apt -y full-upgrade
sudo apt install -y curl wget ca-certificates gnupg ufw lsb-release
# Переменные под один раз правкуexport NICKNAME=HSTQRelay01
export CONTACT='[email protected] (https://hstq.net/)'
export ORPORT=9000
# порт Tor OR; избегайте 9001export OBFS4PORT=443
# порт obfs4-моста (обычно 443/udp не нужен)export DIST=$(lsb_release -sc)
# bookworm / trixie / jammy / noble и т.д.
# Брандмауэр (UFW): откроем SSH и нужные портыsudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 80,443/tcp comment 'Web/ACME'
sudo ufw --force enable
Подключаем репозиторий Tor Project и ставим пакеты
Пакеты Tor из официального репозитория проекта обновляются быстрее дистрибутивных.
# Ключ репозитория Tor Projectwget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc \
| gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null
# Источник APT (Debian/Ubuntu; DIST подставится автоматически)echo "deb [signed-by=/usr/share/keyrings/deb.torproject.org-keyring.gpg] \
https://deb.torproject.org/torproject.org ${DIST} main" | \
sudo tee /etc/apt/sources.list.d/tor.list >/dev/null
# Установка Tor, ключевого пакета репозитория, obfs4proxy и монитора nyxsudo apt update
sudo apt install -y tor deb.torproject.org-keyring obfs4proxy nyx
Если пакеты для «самого нового» релиза Ubuntu ещё не выпущены в репозитории Tor, временно используйте предыдущий LTS-коднейм в tor.list или дождитесь сборок.
Вариант А — безопасный Relay (без выхода)
Создаём минимально строгий /etc/tor/torrc для middle/guard-релея. Он не пропускает трафик в «чистый» интернет (никаких exit-рисков).
sudo tee /etc/tor/torrc >/dev/null <<TORRC
############ Relay-only (no exit) ############
RunAsDaemon 1
SocksPort 0
ORPort ${ORPORT}
Nickname ${NICKNAME}
ContactInfo ${CONTACT}
# Жёстко запрещаем экзитExitRelay 0
ExitPolicy reject *:*
# Ограничения полосы (пример: 50 Мбит/с)RelayBandwidthRate 50 MBytes
RelayBandwidthBurst 60 MBytes
# Учёт трафика по месяцу (опционально)AccountingMax 2 TBytes
AccountingStart month 1 00:00
# Логи в системный журналLog notice syslog
TORRC
Запускаем и смотрим статус:
sudo systemctl enable --now tor@default
sudo systemctl status tor@default --no-pager
Для релея Tor достаточно открыть ORPort по TCP (выше мы не ограничивали UFW для него). При необходимости явно разрешите: sudo ufw allow ${ORPORT}/tcp
.
Полезно: мониторинг nyx (как top для Tor):
nyx
(Пакет nyx — официальный консольный монитор релеев Tor.)
Вариант Б — obfs4-bridge (маскировка для клиентов)
Этот вариант нужен в сетях с цензурой/ DPI. Мы поднимем obfs4-мост: он не является экзит-узлом и не несёт рисков «выходного» трафика.
Файл /etc/tor/torrc:
sudo tee /etc/tor/torrc >/dev/null <<TORRC
############ Obfs4 Bridge ############
RunAsDaemon 1
# Включаем роль моста
BridgeRelay 1
# Основной OR-порт (должен быть доступен извне)
ORPort ${ORPORT}
# Транспорт obfs4
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
ServerTransportListenAddr obfs4 0.0.0.0:${OBFS4PORT}
Nickname ${NICKNAME}
ContactInfo ${CONTACT}
# Публиковать ли мост в публичных списках? Для приватного моста отключите:
# PublishServerDescriptor 0
# Логи
Log notice syslog
TORRC
Открываем нужные порты и перезапускаем:
sudo ufw allow ${ORPORT}/tcp
sudo ufw allow ${OBFS4PORT}/tcp
sudo systemctl restart tor@default
sudo systemctl status tor@default --no-pager
Получаем «бридж-линию» для раздачи пользователям:
sudo cat /var/lib/tor/fingerprint
sudo cat /var/lib/tor/pt_state/obfs4_bridgeline.txt
Строку вида Bridge obfs4 IP:PORT FINGERPRINT cert=... iat-mode=0 отправляйте клиентам — они вставят её в свой torrc/Tor Browser. (Именно так Tor рекомендует настраивать обфусцированный мост.)
4) Проверка, логи и обновления
Проверяем сетевые сокеты и статус:
ss -ltnp | grep -E ":${ORPORT}|:${OBFS4PORT}"
sudo journalctl -u tor@default -e --no-pager
Обновления Tor (регулярно):
sudo apt update && sudo apt -y upgrade
Раздельные конфиги «клиент/релей» на одном сервере (если нужно) делайте отдельными torrc и сервисами, отключив SocksPort в релейном конфиге.
5) Частые вопросы
Exit-узел можно?
Технически — да, но это другая операционная модель (abuse-обработка, ExitPolicy, разъяснения провайдеру, юридические нюансы). На VPS без согласования запускать не рекомендуем. Для релея/моста выше — безопасно: ExitRelay 0, ExitPolicy reject *:*.
Какой порт выбрать для OR/obfs4?
Любой «обычный» TCP-порт, не 9001 (часто сканируется фильтрами). 443 — хорош для obfs4.
Где смотреть свежие инструкции для Debian/Ubuntu и obfs4?
Официальные гайды Tor для Debian/Ubuntu и obfs4-мостов. (Мы уже применили их подходы в конфиге.)
Почему сервис называется tor@default?
В Debian/Ubuntu используется инстанс-юнит systemd tor@<instance>. Базовый — @default.
Нужен Tor-relay/obfs4-bridge под ключ и грамотная сеть? В HSTQ подберём VPS/сервер с нужной полосой, развернём Tor по best-practice, настроим мониторинг (nyx/метрики), лимиты трафика и резервные сценарии — без экзит-рисков и с учётом политики провайдера.