Сайт теперь доступен как скрытый сервис Tor по адресу .onion

Self-Hosting on the Dark Web

Сайт теперь доступен как скрытый сервис Tor по адресу .onion

Автор рассказывает, как разместил свой сайт в сети Tor в качестве скрытого сервиса. Он объясняет, что адрес .onion выводится из публичного ключа, соединение шифруется end-to-end, а сертификаты и DNS не нужны. В статье приводится пошаговая настройка: правка torrc, запуск nginx на локальном порту и сборка второй копии сайта с onion-адресом в качестве base URL. Пайплайн деплоя автоматически синхронизирует clearnet- и Tor-версии.

Tor relays and encrypts your traffic as it passes through thousands of volunteer-run servers, so that no single party can link who you are to what you are doing; a hidden service extends that anonymity to the server itself.
  1. p4bl0

    Мой личный сайт уже много лет хостится в Tor. Это легко сделать даже из дома за NAT, потому что с твоей точки зрения это исходящее соединение (что также делает это отличным способом выставить локальные сервисы, даже когда ты за NAT и у тебя нет статического IP), и по замыслу твой личный IP скрыт от посетителей.

    Я писал об этом в 2600 почти десять лет назад (уже?!). Копию моей статьи можно найти здесь: https://pablorauzy.fr/outreach/2600/how-to-run-a-tor-hidden-...

    Если у тебя есть Onion-копия твоего сайта, не забудь про HTTP-заголовок Onion-Location, который автоматически перенаправит пользователей Tor Browser на onion-версию сайта, даже если они зашли по обычному адресу в клирнете.

    Если людям интересно, у меня также есть продолжение статьи про I2P: https://pablorauzy.fr/outreach/2600/how-to-run-an-i2p-hidden...

  2. ivanmontillam

    Что мне действительно нравится в Onion-сайтах, так это то, что если они достаточно большие, оптимизация производительности становится реально специфичной для Tor. Несколько примеров:

    - Встраивание ресурсов в base64 (img src для логотипа в шапке как base64, весь CSS должен быть inline и т.д.).

    - Максимальное использование CSS (если используешь анимации и переходы, по возможности делай их на CSS, избегай JS для них).

    - Убедись, что твой сайт в основном рендерится на бэкенде. Если у тебя будет JS, сайт должен работать и без него.

    - Безопасность становится РЕАЛЬНО весёлой, в смысле, избегай XSS, CSRF, SQL-инъекций и любых других инъекций по максимуму.

    Как кто-то резюмировал в другом комментарии[0], держи «болтливость» на минимальном уровне. Под болтливостью я понимаю: упакуй как можно больше данных в одно и то же Keep-Alive соединение. По возможности избегай новых HTTP-запросов, так как каждый из них может быть назначен на новый Onion-маршрут, что всё замедляет.

    Если ты можешь доставить свой сайт в браузер за одно соединение, ты победил.

    Меня всегда впечатляла производительность этих больших Onion-сайтов, они реально раздвигают пределы творчества в software engineering с учётом этих ограничений и природы Tor.

    --

    [0]: https://news.ycombinator.com/item?id=49872320

    EDIT: Форматирование пунктов списка.

  3. basilikum

    Вероятно, стоит добавить заголовок Onion-Location на клирнет-сайт, чтобы Tor Browser мог автоматически уведомлять посетителя об этом: https://community.torproject.org/onion-services/advanced/oni...

  4. mzajc

    Помимо использования отдельного порта, я бы также посоветовал запускать скрытый сервис на bind-адресе, отличном от 127.0.0.1, на случай, если ты когда-нибудь разместишь что-то ещё на этом порту и забудешь отключить скрытый сервис:

    > HiddenServicePort 80 127.13.37.1:8080

    > listen 127.13.37.1:8080;

    Таким образом, посторонние не смогут подключиться к сервису, привязанному к 127.0.0.1, если ты когда-нибудь решишь переиспользовать порт и забудешь отключить скрытый сервис.

    Также нужно использовать отдельные порты и/или bind-адреса, если ты хостишь несколько скрытых сервисов и не хочешь, чтобы люди могли их сопоставить — если nginx не совпадёт с заголовком Host, он отдаст тот сайт, который идёт первым по алфавиту.

  5. dherls

    В чём выгода создавать один и тот же сайт дважды с разными именами хостов вместо использования относительных ссылок на контент в том же домене?

  6. tombert

    Я думал сделать это, когда сам хостил свой блог, исключительно потому что считал, что будет некий фактор аккуратности в том, чтобы честно сказать «у меня есть сайт в даркнете».

    В итоге я перенёс блог на Cloudflare Pages в основном потому, что хотел использовать Cloudflare Workers для обработки комментариев, хотя всё ещё рассматривал возможность двойной публикации, просто чтобы всё ещё иметь право сказать, что я это сделал.

  7. coldblues

    Я рекомендую людям также попробовать I2P и Yggdrasil, особенно Yggdrasil. Он не идёт на компромиссы по скорости и задержке, но у него нет анонимности.

  8. sowbug

    В таком руководстве было бы полезно подчеркнуть необходимость резервного копирования сгенерированного приватного ключа, потеря которого заставит тебя сменить свой onion-адрес.

Ещё за этот день

2026-09-27