I2P (Invisible Internet Project или Invisible Internet Protocol) – оверлейная децентрализованная одноранговая сеть. Оверлейная - работает поверх других сетей, например, обычного интернета; децентрализованная - распределенная, не имеющая единой точки отказа: упадет один узел, полсети, или во всей сети останется 3 пользователя – I2P всё равно будет функционировать. I2P является одноранговой сетью, потому что все участники имеют равные права и возможности: каждый пользователь скрытой сети строит свои туннели через других участников и сам является потенциальным звеном в цепочке другого пользователя. При этом естественная сетевая активность никак не компрометирует абонента перед домашним провайдером или участниками скрытой сети.
I2P многократно превосходит Tor по параметрам анонимности, но не имеет по умолчанию выходных прокси в обычный интернет. Сеть I2P полностью децентрализована и открыта. Существует два клиента сети: на языке Java (первый релиз которого состоялся в 2003 году) и i2pd на C++ (первый релиз в 2014). I2P-роутер на C++ превосходит по скорости и стабильности своего предшественника и настоятельно рекомендуется к использованию. Основное обсуждение разработки i2pd ведется на канале #dev в сети ILITA. При работе через Yggdrasil, сеть I2P не образует отдельный сегмент, а остается единой: пользователи из обычного интернета также доступны. Схематично взаимодействие Yggdrasil-only роутеров с остальными участниками сети отображено на иллюстрации.
Подробно о механизме работы сети I2P и истории появления альтерантивного клиента i2pd сказано в видео: YouTube.com.
Самый простой и верный вариант – скачать пакет для своей операционной системы на официальной странице релизов. Также i2pd существует в стандартных репозиториях некоторых unix-like операционных систем вроде Debian или Ubuntu, и доступен для установки через короткую строку sudo apt-get install i2pd
, но такой способ установки не рекомендуется, т.к. в дефолтных репозиториях всегда находятся весьма устаревшие версии.
Однако есть актуальный репозиторий сообщества, добавив который в свою систему можно забыть про протухшие пакеты и обновляться в привычном и удобном виде. Исчерпывающая информация по установке есть в документации i2pd.
Инструкции для Debian и Ubuntu с использованием репозитория пользователя R4SAS
через обычный интернет:
# Ubuntu sudo add-apt-repository ppa:purplei2p/i2pd sudo apt-get update sudo apt-get install i2pd # Debian sudo apt-get install apt-transport-https wget -q -O - https://repo.i2pd.xyz/.help/add_repo | sudo bash -s - sudo apt-get update sudo apt-get install i2pd
То же самое, но с доступом через Yggdrasil, т.е. внутрисетевой репозиторий:
# Debian wget -q -O - http://[321:c99a:91a1:cd2c::4]/.help-ygg/add_repo | sudo bash -s - sudo apt-get update sudo apt-get install i2pd
Сообществом поддерживается I2P-браузер на базе Firefox, по концепции схожий с Tor-браузером. Скачать браузер можно на странице релизов соответствующего гит-репозитория команды PurpleI2P (распространяется только для Windows, для Linux и MacOS систем сборка производится с помощью запуска build.sh из соответствующего архива в релизе). В комплекте портабельного браузера может находиться не последняя версия i2pd, поэтому заменить исполняемый файл i2pd.exe
для использования актуальной версии наверняка нужно будет вручную.
Начиная с версии 2.36.0 i2pd имеет режим работы, исключающей соединения через обычный интернет. Ниже приведен пример конфигурации роутера, сообщающегося со скрытой сетью I2P исключительно через другие Yggdrasil-роутеры. По умолчанию конфигурационный файл находится в /etc/i2pd/i2pd.conf
, либо ~/.i2pd/i2pd.conf
, а в случае Windows OS: %AppData%\i2pd\i2pd.conf
. Для работы I2P-роутера в режиме «Portable», когда все данные хранятся в директории с исполняемым файлом, необходимо создать файл i2pd.conf
в той же папке, где находится бинарный файл программы (в народе: exe-шник).
daemon = true ipv4 = false ipv6 = false ssu = false ntcp2.enabled = false yggdrasil = true
Если вы хотите, чтобы I2P-роутер публиковал адрес из вашей подсети Yggdrasil, которая используется на устройстве, добавьте строку:
meshnets.yggaddress=your_local_yggdrasil_address
При первом запуске i2pd обратится к стартовому серверу внутри сети Yggdrasil, который отдаст несколько роутеров, достаточных для начала работы. Затем, база сети роутера начнет автоматически пополняться. Таким образом использование I2P обойдется без единого обращения в клирнет.
I2P-роутер (i2pd) при запуске операционной системы (на примере Debian) может стартовать раньше, чем служба Yggdrasil. Это приводит к вынужденному ручному перезапуску i2pd, т.к. yggdrasil-интерфейс не обнаруживается I2P-роутером до старта службы Yggdrasil. Есть два основных способа решить эту проблему (используйте любой на свое усмотрение):
1) После запуска Yggdrasil задать задержку перед стартом зависящих служб:
/etc/systemd/system/i2pd.service.d
: mkdir /etc/systemd/system/i2pd.service.d
nano /etc/systemd/system/i2pd.service.d/override.conf
Вставить следующее содержимое:
[Unit] After=network.target yggdrasil.service
Ctrl+O – сохранить изменения в файле, Ctrl+X – выйти из редактора nano
/etc/systemd/system/yggdrasil.service.d
: mkdir /etc/systemd/system/yggdrasil.service.d
nano /etc/systemd/system/yggdrasil.service.d/override.conf
Вставить следующее содержимое:
[Service] # adding post-up delay to bring up yggdrasil tunnel interface before starting other services which depends on ygg ExecStartPost=/bin/sleep 5
Ctrl+O – сохранить изменения в файле, Ctrl+X – выйти из редактора nano
2) Задать таймер запуска i2pd:
i2pd.timer
: sudo nano /etc/systemd/system/i2pd.timer
[Unit] Description=i2pd service timer After=yggdrasil.service [Timer] OnActiveSec=10 [Install] WantedBy=multi-user.target
Ctrl+O – сохранить изменения в файле, Ctrl+X – выйти из редактора nano
sudo systemctl disable i2pd.service
sudo systemctl enable i2pd.timer
Какой вклад в развитие сети I2P может сделать средний пользователь? Этим вопросом задаются многие энтузиасты. И вот ответ:
ipv4 = true ipv6 = true yggdrasil = true
floodfill = true
Обратите внимание! К флудфилу предъявляются специальные требования, перечисленные ниже. Если правила не соблюдаются, ваш роутер наверняка будет забанен другими участниками сети (в лучшем случае им просто не будут пользоваться):
Следует обратить внимание, что указанные настройки в первую очередь актуальны для администраторов серверов или домашних пользователей, имеющих выделенный IP-адрес. Однако в любом случае держать I2P-роутер включенным максимально возможное время – хороший вклад в общую мощность сети. Клиент сети, запущенный даже на смартфоне (!) может принимать «исследовательские» туннели, создаваемые другими участниками для исследования сети и имеющие крайне малый трафик.
Количество Yggdrasil-роутеров в одном из ресидов - стартовом бутстрап-пакете
Git-репозиторий i2pd
Страница релизов i2pd для загрузки
Документация i2pd на русском языке
Сайт java-роутера (не поддерживает Yggdrasil)
Обсуждение
2. Есть какие-то оценки числа пользователей в Yggdrasil и в I2P?
Цели создания этих сетей разные.
I2P создана для анонимности.
Yggdrasil - это эксперимент по созданию протокола для организации децентрализованной сети с маршрутизацией, не требующей настройки, в общем случае.