howto-db/data/pages/i2p.txt
2024-02-10 12:53:55 +00:00

92 lines
13 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

======I2P======
I2P (Invisible Internet Project или Invisible Internet Protocol) -- оверлейная децентрализованная одноранговая сеть. Оверлейная - работает поверх других сетей, например, обычного интернета; децентрализованная - распределенная, не имеющая единой точки отказа: упадет один узел, полсети, или во всей сети останется 3 пользователя -- I2P всё равно будет функционировать. I2P является одноранговой сетью, потому что все участники имеют равные права и возможности: каждый пользователь скрытой сети строит свои туннели через других участников и сам является потенциальным звеном в цепочке другого пользователя. При этом естественная сетевая активность никак не компрометирует абонента перед домашним провайдером или участниками скрытой сети.
{{ i2p:i2p-over-ygg.jpg?440}} I2P многократно превосходит [[https://torproject.org|Tor]] по параметрам анонимности, но не имеет по умолчанию выходных прокси в обычный интернет. Сеть I2P полностью децентрализована и открыта. Существует два клиента сети: на языке Java (первый релиз которого состоялся в 2003 году) и i2pd на C++ (первый релиз в 2014). I2P-роутер на C++ превосходит по скорости и стабильности своего предшественника и настоятельно рекомендуется к использованию. Основное обсуждение разработки i2pd ведется на канале #dev в сети [[social_media:ilita_network|ILITA]]. При работе через Yggdrasil, сеть I2P не образует отдельный сегмент, а остается единой: пользователи из обычного интернета также доступны. Схематично взаимодействие Yggdrasil-only роутеров с остальными участниками сети отображено на иллюстрации.
Подробно о механизме работы сети I2P и истории появления альтерантивного клиента i2pd сказано в видео: [[https://youtu.be/h9HWGsSGQc8|YouTube.com]].
======Установка======
Самый простой и верный вариант -- скачать пакет для своей операционной системы на официальной [[https://github.com/PurpleI2P/i2pd/releases|странице]] релизов. Также i2pd существует в стандартных репозиториях некоторых unix-like операционных систем вроде Debian или Ubuntu, и доступен для установки через короткую строку ''sudo apt-get install i2pd'', но такой способ установки не рекомендуется, т.к. в дефолтных репозиториях всегда находятся весьма устаревшие версии.\\
Однако есть актуальный репозиторий сообщества, добавив который в свою систему можно забыть про протухшие пакеты и обновляться в привычном и удобном виде. Исчерпывающая информация по установке есть в [[https://i2pd.readthedocs.io/en/latest/user-guide/install/|документации]] i2pd.\\
Инструкции для Debian и Ubuntu с использованием репозитория пользователя ''R4SAS'' через обычный интернет:
<code>
# 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
</code>
То же самое, но с доступом через Yggdrasil, т.е. внутрисетевой репозиторий:
<code>
# 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
</code>
Сообществом поддерживается I2P-браузер на базе Firefox, по концепции схожий с Tor-браузером. Скачать браузер можно на [[https://github.com/PurpleI2P/i2pdbrowser/releases|странице]] релизов соответствующего гит-репозитория команды PurpleI2P (распространяется только для Windows, для Linux и MacOS систем сборка производится с помощью запуска build.sh из соответствующего архива в релизе). В комплекте портабельного браузера может находиться не последняя версия i2pd, поэтому заменить исполняемый файл ''i2pd.exe'' для использования актуальной версии наверняка нужно будет вручную.
======I2P внутри Yggdrasil======
Начиная с версии 2.36.0 i2pd имеет режим работы, исключающей соединения через обычный интернет. Ниже приведен пример конфигурации роутера, сообщающегося со скрытой сетью I2P исключительно через другие Yggdrasil-роутеры. По умолчанию конфигурационный файл находится в ''/etc/i2pd/i2pd.conf'', либо ''~/.i2pd/i2pd.conf'', а в случае Windows OS: ''%AppData%\i2pd\i2pd.conf''. Для работы I2P-роутера в режиме "Portable", когда все данные хранятся в директории с исполняемым файлом, необходимо создать файл ''i2pd.conf'' в той же папке, где находится бинарный файл программы (в народе: exe-шник).
<code>daemon = true
ipv4 = false
ipv6 = false
ssu = false
ntcp2.enabled = false
yggdrasil = true
</code>
Если вы хотите, чтобы I2P-роутер публиковал адрес из [[yggdrasil:subnet_setting|вашей подсети]] Yggdrasil, которая используется на устройстве, добавьте строку:
<code>meshnets.yggaddress=your_local_yggdrasil_address</code>
При первом запуске i2pd обратится к стартовому серверу внутри сети Yggdrasil, который отдаст несколько роутеров, достаточных для начала работы. Затем, база сети роутера начнет автоматически пополняться. Таким образом использование I2P обойдется без единого обращения в клирнет.
=====Автозапуск=====
I2P-роутер (i2pd) при запуске операционной системы (на примере Debian) может стартовать раньше, чем служба Yggdrasil. Это приводит к вынужденному ручному перезапуску i2pd, т.к. yggdrasil-интерфейс не обнаруживается I2P-роутером до старта службы Yggdrasil. Есть два основных способа решить эту проблему (используйте любой на свое усмотрение):
**1)** После запуска Yggdrasil задать задержку перед стартом зависящих служб:
- Добавить зависимость в запуск службы i2pd:\\ Создать директорию ''/etc/systemd/system/i2pd.service.d'': <code>mkdir /etc/systemd/system/i2pd.service.d</code>
- Дополнить запуск службы i2pd: <code>nano /etc/systemd/system/i2pd.service.d/override.conf</code> Вставить следующее содержимое: <code>[Unit]
After=network.target yggdrasil.service</code> //Ctrl+O -- сохранить изменения в файле, Ctrl+X -- выйти из редактора nano//
- Создать директорию ''/etc/systemd/system/yggdrasil.service.d'': <code>mkdir /etc/systemd/system/yggdrasil.service.d</code>
- Дополнить запуск службы Yggdrasil: <code>nano /etc/systemd/system/yggdrasil.service.d/override.conf</code> Вставить следующее содержимое: <code>[Service]
# adding post-up delay to bring up yggdrasil tunnel interface before starting other services which depends on ygg
ExecStartPost=/bin/sleep 5</code> //Ctrl+O -- сохранить изменения в файле, Ctrl+X -- выйти из редактора nano//
**2)** Задать таймер запуска i2pd:
- Создать файл ''i2pd.timer'': <code>sudo nano /etc/systemd/system/i2pd.timer</code>
- Заполнить файл таймера следующим образом: <code>[Unit]
Description=i2pd service timer
After=yggdrasil.service
[Timer]
OnActiveSec=10
[Install]
WantedBy=multi-user.target</code> //Ctrl+O -- сохранить изменения в файле, Ctrl+X -- выйти из редактора nano//
- Отключить дефолтный автозапуск i2pd: <code>sudo systemctl disable i2pd.service</code>
- Включить наш таймер: <code>sudo systemctl enable i2pd.timer</code>
======Развитие сети======
Какой вклад в развитие сети I2P может сделать средний пользователь? Этим вопросом задаются многие энтузиасты. И вот ответ:
- Включить все существующие сетевые интерфейсы для большей связности сети: <code>ipv4 = true
ipv6 = true
yggdrasil = true</code>
- При технической возможности можно включить режим флудфила - своеобразного диспетчера I2P (может периодически возрастать нагрузка на процессор и сетевой канал): <code> floodfill = true </code>
Обратите внимание! К флудфилу предъявляются специальные требования, перечисленные ниже. Если правила не соблюдаются, ваш роутер наверняка будет забанен другими участниками сети (в лучшем случае им просто не будут пользоваться):
* Доступность узла через IPv4 (то есть выделенный IPv4 адрес с открытым портом i2pd);
* Максимально возможный транзит (не ниже флага "O" в конфиге);
* IP адрес, с которого i2pd инициирует соединения, должен совпадать с опубликованным в лизсете (воздержитесь от сложных конфигураций с прокси и прочим в этом духе).
Следует обратить внимание, что указанные настройки в первую очередь актуальны для администраторов серверов или домашних пользователей, имеющих выделенный IP-адрес. Однако в любом случае держать I2P-роутер включенным максимально возможное время -- хороший вклад в общую мощность сети. Клиент сети, запущенный даже на смартфоне (!) может принимать "исследовательские" туннели, создаваемые другими участниками для исследования сети и имеющие крайне малый трафик.
======Ссылки======
[[http://[324:71e:281a:9ed3::ace]/ygg-i2p/|Количество]] Yggdrasil-роутеров в одном из ресидов - стартовом бутстрап-пакете\\
[[https://github.com/PurpleI2P/|Git-репозиторий]] i2pd\\
[[https://github.com/PurpleI2P/i2pd/releases|Страница]] релизов i2pd для загрузки\\
[[https://i2pd.readthedocs.io/ru/latest/|Документация]] i2pd на русском языке\\
[[https://geti2p.net/ru/|Сайт]] java-роутера (не поддерживает Yggdrasil)