SSD Nodes Learn Hosting plans →
Посібники Matt ConnorВід Matt Connor

Tor vs I2P: цибулева проти часникової маршрутизації

Tor vs I2P без міфів: двонапрямлені ланцюжки проти односпрямованих тунелів, консенсус проти netDb, вихід в інтернет, мости проти цензури і реле на власному VPS.

Коротка відповідь: Tor vs I2P

Tor vs I2P: обидві мережі ховають, хто з ким говорить, але цибулева маршрутизація (onion routing) у Tor і часникова маршрутизація (garlic routing) в I2P побудовані для різних задач. Tor створено, щоб виходити у звичайний інтернет і відкривати onion-сервіси (onion services), тобто сайти з адресою .onion. I2P (Invisible Internet Project) є здебільшого закритою мережею: сервіси живуть усередині неї, а виходів у звичайний інтернет мало.

Тому вибір зазвичай простий. Потрібно анонімно читати звичайні сайти або допомогти людині обійти блокування, беріть Tor. Потрібна мережа, де обидві сторони розмови перебувають усередині, а учасники за замовчуванням самі пересилають трафік інших, дивіться на I2P. Нижче пояснюємо механізм кожної мережі, межі їхнього захисту і те, як допомогти обом мережам зі свого VPS (virtual private server, віртуальний сервер).

Як працює цибулева маршрутизація (onion routing) у Tor

Клієнт Tor будує ланцюжок (circuit) через реле (relay). Реле є сервером, який запустив доброволець. За документацією Tor Project, охоронне реле (guard relay) є першим кроком (hop) ланцюжка. Проміжне реле (middle relay) є другим кроком. Вихідне реле (exit relay) є останнім: саме воно надсилає трафік до сайту.

Клієнт шифрує дані шарами, по одному шару на кожне реле. Кожне реле знімає свій шар і знає лише сусідні вузли. Охоронне реле бачить вашу IP-адресу, але не бачить сайт. Вихідне реле бачить сайт, але не бачить вашу адресу. Звідси й назва: шари, як у цибулини.

Ланцюжок двонапрямлений. Відповідь сайту повертається тим самим ланцюжком. Сторінка порівняння на сайті I2P описує Tor саме так: «Bidirectional circuits (3 hops)».

Звідки клієнт знає, які реле існують? Список дає невеликий фіксований набір серверів, які називають директорними авторитетами (directory authorities). За специфікацією Tor, вони спільно голосують за один документ консенсусу (consensus) про стан мережі. Клієнт завантажує цей консенсус і вибирає реле з нього. Мости (bridges) є винятком. Це реле, яких немає в публічному каталозі Tor, тому цензорові важче дізнатися їхні адреси. Як склався саме такий дизайн, ми розповідаємо в історії Tor і цибулевої маршрутизації.

Як працює часникова маршрутизація (garlic routing) в I2P

Тунелі в I2P односпрямовані. Документація I2P пише прямо: повідомлення йде лише в один бік, а для відповіді потрібен інший тунель. Тому кожен учасник має тунелі двох типів. Вхідний тунель (inbound tunnel) несе трафік до свого творця. Вихідний тунель (outbound tunnel) несе трафік від нього.

Коли ви пишете сервісу в I2P, повідомлення йде вашим вихідним тунелем і потрапляє у вхідний тунель сервісу. Відповідь іде іншою парою тунелів: вихідним тунелем сервісу і вашим вхідним. Отже, запит і відповідь проходять різними маршрутами. У Tor обидва напрямки йдуть одним ланцюжком.

Довжину тунелю вибирає застосунок. За документацією, роутер (router, програма-вузол I2P) за замовчуванням будує службові дослідницькі тунелі (exploratory tunnels) з двох кроків. Більшість застосунків використовує два або три кроки.

Слово «часникова» пояснює другу різницю. Одне часникове повідомлення (garlic message) може містити кілька «зубчиків» (cloves). Кожен зубчик є повноцінним повідомленням зі своїми інструкціями доставки. Ідея шарового шифрування та сама, що й у Tor. Документація I2P називає саме пакування кількох повідомлень разом суттєвою відмінністю від onion routing у Tor.

Третя різниця стосується каталогу. Директорних авторитетів в I2P немає. Відомості про роутери зберігає розподілена база netDb (network database, мережева база даних). Її підтримує частина роутерів, які називають floodfill. За документацією, floodfill-роутери не мають центрального органу і не формують «консенсусу». Це роутери з широким каналом, які самі стають floodfill, коли таких вузлів у мережі замало. Не кожен роутер бере в цьому участь.

Четверта різниця стосується ролі учасника. В I2P роутер за замовчуванням пересилає чужий трафік, який називають транзитним (transit traffic). Сторінка моделі загроз I2P стверджує, що понад 95% користувачів так і роблять. Це типова поведінка, а не обов'язок: та сама сторінка описує прихований режим (hidden mode), у якому роутер не публікує себе в netDb і не пересилає дані. У Tor реле стає лише той, хто окремо налаштував його у файлі torrc. Звичайний користувач Tor Browser нічого не пересилає.

Головна різниця: звичайний інтернет чи закрита мережа

Вихід у звичайний інтернет (clearnet) у Tor є основною метою дизайну. Сторінка порівняння I2P так і пише про Tor: «Core design goal». Про себе вона пише: «Limited (discouraged)», тобто обмежено і не рекомендовано.

Причина в будові I2P. Документація каже, що I2P сама по собі не є мережею вихідних проксі (outproxy). Вихідні проксі запускають добровольці, і за замовчуванням ніхто ним не є. Типовий вихід для HTTP і HTTPS надає exit.stormycloud.i2p. Типового вихідного проксі для SOCKS немає, тому FAQ I2P описує SOCKS як інструмент для роботи всередині мережі. Проте з версії 2.1.0 (січень 2023 року) SOCKS-тунель можна спрямувати на вихідний проксі з підтримкою CONNECT і задати для нього порт, якщо ви самі знайдете такий проксі і налаштуєте його. Тож якщо ви відкриваєте звичайний сайт через I2P, ваш трафік виходить через вихідні проксі, які тримають окремі добровольці.

Зате всередині мережі I2P працює повноцінно. Обидві сторони розмови мають власні тунелі, і жодна не виходить у звичайний інтернет. У Tor аналогом є onion-сервіси. Якщо вам потрібен сайт, доступний лише через Tor, дивіться наш гайд про те, як розмістити onion-сайт на VPS. Якщо ж ви плутаєте Tor із VPN-сервісом, почніть з пояснення, чим Tor відрізняється від VPN.

Практичний вибір виглядає так:

  • Анонімно читати звичайні сайти, новини, пошук: Tor.
  • Допомогти людині під цензурою: Tor з мостами (розділ нижче).
  • Сервіс, до якого мають доступ лише учасники анонімної мережі: підходять обидві. Onion-сервіс відкривається у звичайному Tor Browser, тому відвідувачам не потрібно встановлювати окремий роутер.
  • Мережа, де вузли за замовчуванням пересилають трафік одне одного, а центрального каталогу немає: I2P.

Третій підхід до анонімності називають мікс-мережею (mixnet). Приклад: Nym. Документація Nym описує її як інфраструктуру, що захищає метадані: не лише зміст повідомлення, а й те, хто з ким говорить. Увесь трафік у Nym іде через вузли Nym Nodes. Один і той самий бінарний файл можна налаштувати як вхідний шлюз (Entry Gateway), мікс-вузол (Mix Node) або вихідний шлюз (Exit Gateway). Замість центрального каталогу Nym використовує блокчейн Nyx. Це окрема модель загроз, і порівнювати її з Tor та I2P варто окремо.

Від чого не захищає ні Tor, ні I2P

Обидві мережі мають чесно описані межі. Ось чотири, які варто знати до вибору.

  • Глобальний пасивний спостерігач (global passive adversary). Якщо хтось бачить ваш трафік на вході в мережу і на виході з неї, він може зіставити час пакетів. Довідка Tor пише прямо: «Tor does not defend against such a threat model». Модель загроз I2P теж визнає, що такий спостерігач може провести атаку, і що повного захисту для зв'язку з малою затримкою (low latency) немає. Нетривіальні затримки пакетів та обмежені маршрути (restricted routes) в I2P зараз не реалізовано.
  • Скомпрометований пристрій. Якщо на вашому ноутбуці працює шкідлива програма, вона бачить дані до шифрування. Анонімна мережа тут нічого не змінює. Захист пристрою є окремою задачею, і саме її розв'язують системи з нашого порівняння Tor Browser, Tails і Whonix.
  • Вхід у ваші справжні акаунти. Якщо ви увійшли у свою пошту через Tor, сайт знає, хто ви. Мережа приховує IP-адресу, а не особу. Довідка Tor додає важливу деталь: Tor повторно використовує ланцюжок для кількох TCP-з'єднань, тому на вихідному реле можна пов'язати ваш анонімний і неанонімний трафік. Не змішуйте їх в одному сеансі.
  • Сам факт використання. Модель загроз I2P каже, що провайдер або державний файрвол може побачити, що комп'ютер запускає I2P. Публічні реле Tor перелічено в консенсусі, тому з'єднання з ними теж помітне. Саме для цього в Tor існують мости.

Що обрати для людини під жорсткою цензурою

Якщо ви допомагаєте людині, у якої блокують анонімні мережі, історія обходу блокувань є в Tor. Вона складається з мостів і підключуваних транспортів (pluggable transports). Транспорт змінює вигляд трафіку, щоб цензорові було важче впізнати Tor.

  • obfs4. Класичний транспорт для мостів. Проєкт obfs4 перейменовано на lyrebird, тому в документації трапляються обидві назви.
  • Snowflake. Використовує WebRTC (технологію відеодзвінків у браузері) і проксі, які запускають добровольці. Людина встановлює застосунок з Tor, наприклад Tor Browser або Orbot, і вибирає Snowflake у налаштуваннях.
  • WebTunnel. Транспорт, який імітує звичайний перегляд вебсторінок і базується на HTTPT. Оператор такого мосту має мати власний домен, вебсервер і дійсний сертифікат TLS (transport layer security).

Як працює кожен транспорт і як отримати міст, ми розбираємо в окремому гайді про мости Tor і підключувані транспорти.

Чи можна заблокувати бутстрап I2P через reseed?

Новий роутер I2P не знає жодного іншого вузла. Щоб увійти в мережу, він завантажує файли RouterInfo з reseed-сайтів. Сайт вибирається випадково з вбудованого списку. Цей процес бутстрапу (bootstrap) I2P називає reseeding.

Чи може цензор це заблокувати? Так, і проєкт це визнає. FAQ I2P називає блокування reseed-серверів найпростішим способом заблокувати I2P. Модель загроз додає, що роутери підтримують кілька зовнішніх джерел reseed, але таких хостів може знадобитися більше.

Документація пропонує два обхідні шляхи. Перший: виконати reseed через проксі. Другий: завантажити reseed-файл, створений на іншому комп'ютері. Файловий reseed з'явився у версії 0.9.16, і сторінка про reseed прямо називає його корисним для регіонів, де HTTPS reseed-сервери заблоковано. У i2pd за це відповідають параметри reseed.proxy (проксі https або socks) і reseed.file (локальний файл .su3 або HTTPS URL). Параметр reseed.threshold задає мінімальну кількість відомих роутерів, нижче якої i2pd просить reseed. Його значення за замовчуванням: 25.

Блокування reseed зупиняє лише новий роутер. Є й друге питання: чи можна блокувати вже відомих учасників. Дослідження arXiv 1809.09086 «An Empirical Study of the I2P Anonymity Network and its Censorship Resistance» вийшло у 2018 році. Автори дійшли висновку, що цензор із 10 власними роутерами міг заблокувати понад 95% IP-адрес вузлів, які знає стабільний клієнт. Мережа відтоді змінилася, тому читайте ці цифри як історичні. Для людини під жорсткою цензурою практична відповідь та сама: у Tor є готові транспорти для обходу, а в I2P головна точка блокування описана самим проєктом.

Як допомогти мережам зі свого VPS

Охоронне або проміжне реле Tor і роутер i2pd підходять для звичайного VPS. Документація Tor прямо каже, що реле на віртуальному або виділеному сервері в дата-центрі працює нормально. Усі кроки нижче ви виконуєте самі, на власному сервері.

Вимоги Tor Project до реле такі. Канал: щонайменше 10 Мбіт/с, рекомендовано 16 Мбіт/с. Пам'ять: щонайменше 512 МБ RAM для реле без виходу, якщо його швидкість нижча за 40 Мбіт/с. Трафік: щонайменше 100 ГБ вихідного трафіку на місяць, а найкраще тариф без лічильника (unmetered). Також потрібна публічна адреса IPv4. Процесор з AES-NI рекомендовано. Якщо канал між 1 і 10 Мбіт/с, документація радить запустити міст замість реле.

Перевірте процесор:

grep -m1 -o aes /proc/cpuinfo

Рядок aes у виводі означає, що інструкції AES-NI доступні. Порожній вивід означає, що їх немає або гіпервізор їх не передає.

Звідки брати пакет tor

Ubuntu має власний пакет tor у репозиторії universe. Станом на 21 жовтня 2026 року Ubuntu 24.04 має версію 0.4.8.10-1build2, а в noble-updates 0.4.9.11-0ubuntu0.24.04.1. Ubuntu 26.04 має 0.4.9.6-1, а в resolute-updates 0.4.9.11-0ubuntu0.26.04.1. На download.torproject.org найновіший архів вихідного коду зараз tor-0.4.9.14.tar.gz.

Tor Project радить встановлювати tor з власного репозиторію. Про пакети дистрибутивів довідка пише, що раніше їх не завжди вчасно оновлювали. Репозиторій Tor Project має пакети для amd64 і arm64. Налаштуйте його за інструкцією на support.torproject.org. Адресу ключа копіюйте з живої сторінки, а не з чужих гайдів. Після цього:

sudo apt update
apt policy tor
sudo apt install tor deb.torproject.org-keyring

У виводі apt policy tor версія-кандидат (Candidate) має йти з deb.torproject.org. Якщо там лише archive.ubuntu.com, репозиторій Tor Project не підключено.

Мінімальний torrc для реле без виходу

Гайд Tor Project для Debian і Ubuntu наводить такий приклад для файлу /etc/tor/torrc:

Nickname    myNiceRelay
ContactInfo your@e-mail
ORPort      443
ExitRelay   0
SocksPort   0

ExitRelay 0 робить реле таким, що не випускає трафік в інтернет. SocksPort 0 вимикає локальний клієнтський порт, бо цей сервер працює лише як реле. Адресу з ContactInfo буде опубліковано, тому вкажіть окрему скриньку. Перезапустіть службу і прочитайте журнал:

sudo systemctl restart tor@default
sudo journalctl -u tor@default -n 50 --no-pager

У здоровому журналі є два рядки: Self-testing indicates your ORPort is reachable from the outside. Excellent. і Publishing server descriptor. Приблизно через 3 години реле має з'явитися в Relay Search на порталі Tor Metrics. Ви не вибираєте, чи буде реле охоронним. Трафік зростає поступово, і за документацією повільніше за все це відбувається саме з охоронними реле. Повну процедуру описано в гайді як запустити реле Tor на VPS.

Перевірте, який порт реально відкрито

ORPort 443 у прикладі не є фіксованим значенням Tor. Гайд прямо каже, що можна вибрати інший порт. Якщо на сервері вже працює вебсервер на 443, виберіть інший порт, бо два процеси не можуть слухати той самий порт. Не довіряйте числу з гайду. Подивіться, що відкрив процес:

sudo ss -tlnp | grep tor

Рядок з users:(("tor" показує адресу і порт, які слухає Tor. Саме цей порт відкрийте у файрволі сервера, наприклад sudo ufw allow 443/tcp, і в мережевому файрволі провайдера, якщо він є. Якщо в журналі немає рядка Self-testing indicates your ORPort is reachable, ззовні до порту не доходять пакети. Обмеження швидкості і місячного трафіку для реле описано в розділі про облік трафіку в man torrc.

Роутер i2pd

i2pd є окремою реалізацією роутера I2P від команди PurpleI2P. У Ubuntu universe є пакет i2pd: версія 2.49.0-1build3 для 24.04 і 2.59.0-1 для 26.04. Станом на 21 жовтня 2026 року найновіший реліз на GitHub має номер 3.0.0, його опубліковано 20 жовтня 2026 року. Тому universe відстає, а PPA від PurpleI2P уже має 3.0.0 для 24.04 і 26.04. Документація i2pd пропонує PPA від PurpleI2P для Ubuntu, репозиторій для Debian від учасника спільноти R4SAS і бінарні файли зі сторінки релізів. Репозиторій для Debian підключає скрипт, який передають у sudo bash, тож спершу прочитайте цей скрипт. Для Ubuntu:

apt policy i2pd
sudo add-apt-repository ppa:purplei2p/i2pd
sudo apt-get update
sudo apt-get install i2pd
sudo systemctl enable --now i2pd
systemctl status i2pd

systemctl status i2pd має показати active (running). Тепер про порт. За документацією, порт для вхідних з'єднань за замовчуванням вибирається випадково (auto (random)). Транспорти NTCP2 (працює по TCP) і SSU2 (працює по UDP) за замовчуванням використовують цей самий порт. Тому жодного «стандартного порту I2P» немає. Подивіться свій:

sudo ss -tulpn | grep i2pd

Число, яке ви побачите в рядках tcp і udp, відкрийте у файрволі для обох протоколів. Щоб правило файрвола не залежало від випадку, задайте порт явно в конфігурації. Документація називає файли ~/.i2pd/i2pd.conf або /var/lib/i2pd/i2pd.conf. Пакет може запускати службу з іншим шляхом, тому перевірте його в systemctl cat i2pd. Приклад:

port = 23456

Замініть 23456 на свій номер, потім виконайте sudo systemctl restart i2pd і знову ss. Параметр bandwidth обмежує швидкість: він приймає число в КБ/с або літеру класу. За коментарями у файлі i2pd.conf, типовий клас звичайного роутера L, тобто 32 КБ/с, а з увімкненим режимом floodfill X, тобто без обмеження. Секція [limits] має параметр transittunnels з типовим значенням 25000, тобто максимальною кількістю транзитних тунелів. У режимі floodfill це значення подвоюється. Параметр notransit повністю вимикає транзитний трафік, але тоді ваш роутер нічого не дає мережі. Фіксованого обсягу RAM для i2pd документація не наводить, тому стежте за власним сервером.

Java I2P

Java I2P поширює сам проєкт I2P. Станом на 21 жовтня 2026 року сторінка завантажень на i2p.net показує версію 2.13.0 і вимагає Java 8 або новішу. Документація I2P переїхала з geti2p.net на i2p.net. Для Ubuntu гайд проєкту використовує PPA, для Debian власний репозиторій. Встановіть обидва пакети, роутер і ключі:

sudo add-apt-repository ppa:i2p-maintainers/i2p
sudo apt update
sudo apt install i2p i2p-keyring
sudo dpkg-reconfigure i2p

dpkg-reconfigure i2p налаштовує запуск під час завантаження системи. Гайд радить запускати I2P від звичайного користувача, а не від root. За FAQ, під час першого запуску роутер вибирає випадковий порт від 9000 до 31000. Вхідний UDP на цей порт необов'язковий, але рекомендований. Обсяг пам'яті залежить від способу встановлення. Пакет для Debian і Ubuntu під час dpkg-reconfigure i2p питає про ліміт пам'яті, і в його шаблоні у вихідному коді 2.13.0 типове значення 128 МБ. Стандартний інсталятор натомість задає максимальну купу Java 512 МБ (wrapper.java.maxmemory=512). Це межа купи, а не повне споживання пам'яті процесом. Обмеження швидкості задають у консолі на сторінці http://localhost:7657/config, а вибраний порт показано на сторінці налаштувань мережі http://127.0.0.1:7657/confignet. Адреса localhost означає сам сервер, тому зі свого комп'ютера відкривайте консоль через SSH-тунель:

ssh -L 7657:127.0.0.1:7657 user@your-vps

Поки тунель відкрито, адреса http://localhost:7657/config у локальному браузері веде на консоль сервера. Запускайте на одному сервері або i2pd, або Java I2P. Це дві реалізації того самого роутера, і одного достатньо.

Чому вихідне реле Tor не для звичайного VPS

Вихідне реле відрізняється від інших. За документацією Tor Project, охоронні і проміжні реле зазвичай не отримують скарг на зловживання. Скарги на вихідне реле йдуть прямо вам, через хостинг-провайдера. Tor Project радить запускати вихідне реле на окремому сервері, не змішувати з ним власний трафік і починати зі скороченої політики виходу (reduced exit policy). З дому вихідне реле запускати не слід. Також довідка попереджає, що багато VPS-провайдерів не дозволяють вихідні реле, тому питати треба до оплати.

Отже, вихідному реле потрібен хостинг, який свідомо погодився отримувати листи про зловживання. Звичайний VPS загального призначення для цього не підходить, наш теж. Що потрібно від такого хостингу, ми пояснюємо в гайді про запуск вихідного вузла Tor. Охоронне або проміжне реле приносить мережі користь без цих проблем.

FAQ

Чим цибулева маршрутизація (onion routing) відрізняється від часникової (garlic routing)?

Обидві шифрують дані шарами, по шару на кожен вузол шляху. У Tor запит і відповідь йдуть одним двонапрямленим ланцюжком через охоронне, проміжне і вихідне реле, а список реле дає консенсус директорних авторитетів. В I2P тунелі односпрямовані, тому вхідний і вихідний трафік іде окремими тунелями. Одне часникове повідомлення може містити кілька «зубчиків» (cloves) з власними інструкціями доставки, а відомості про вузли зберігає розподілена база netDb на floodfill-роутерах.

Чи можна через I2P відкривати звичайні сайти?

Можна, але мережа для цього не створена. Документація I2P каже, що I2P не є мережею вихідних проксі, і за замовчуванням ніхто не працює як вихідний проксі. Типовий вихід для HTTP і HTTPS дає exit.stormycloud.i2p. Типового вихідного проксі для SOCKS немає, хоча з версії 2.1.0 SOCKS-тунель можна налаштувати на вихідний проксі з підтримкою CONNECT, який ви знайдете самі. Для анонімного доступу до звичайних сайтів Tor підходить краще, бо вихід в інтернет є його основною метою.

Чи можна заблокувати I2P на етапі reseed?

Так. FAQ I2P сам називає блокування reseed-серверів найпростішим способом заблокувати I2P. Обхідні шляхи з документації: reseed через проксі або reseed-файл, створений на іншому комп'ютері. У i2pd для цього є параметри reseed.proxy і reseed.file. Дослідження arXiv 1809.09086 про стійкість I2P до цензури вийшло у 2018 році, тому його цифри описують тодішню мережу.

Чи можна запустити реле Tor або роутер i2pd на звичайному VPS?

Так, якщо це охоронне або проміжне реле Tor чи роутер i2pd. Tor Project вимагає щонайменше 10 Мбіт/с, 512 МБ RAM для реле без виходу до 40 Мбіт/с, 100 ГБ вихідного трафіку на місяць і публічну IPv4. Порт перевіряйте командою ss, бо Tor використовує порт з вашого torrc, а i2pd за замовчуванням вибирає випадковий. Вихідне реле Tor на звичайний VPS не ставте: скарги на зловживання йдуть оператору, і багато провайдерів такі реле забороняють.

Чи була ця стаття корисною?

#tor#i2p#onion-routing#anonymity#privacy#censorship