Знание должно быть доступно!

Путь /ОС/Linux/Network

#i2p https://i2pd.website

i2pd (I2P Daemon) это полнофункциональная реализация I2P клиента на языке C++

I2P (Невидимый Интернет Протокол) это универсальный анонимный сетевой уровень. Все соединения через I2P анонимны и используют сквозное (end-to-end) шифрование, участники не раскрывают свои настоящие IP адреса.

I2P клиент это программа для построения и использования анонимных I2P сетей. Подобные сети обычно используются для анонимных peer-to-peer приложений (файлообмен, криптовалюты) и для анонимных клиент-серверных приложений (вебсайты, мессенджеры, чат-серверы).

I2P позволяет людям со всего мира общаться и делиться информацией без ограничений.

Установка:

  • https://i2p.net/en/downloads/
  • https://i2p.net/ru/docs/overview/alternative-clients/

Установка в Arch Linux:

sudo pacman -S i2pd

Конфиг файл:

	/etc/i2pd/i2pd.conf

Запускать будет от обычного пользователя, по этому раскопируем себе из основного конфига:

mkdir -p ~/.i2pd  
cp /etc/i2pd/i2pd.conf ~/.i2pd/

Копируем сертификаты:

cp -r /usr/share/i2pd/certificates ~/.i2pd/

Открываем пользовательский конфиг: Дока по конфигурации тут: https://docs.i2pd.website/en/latest/user-guide/configuration/

nvim  ~/.i2pd/i2pd.conf

Теперь надо активировать прокси. Прокси тут выступаю вроде норы. Сам по себе i2p это сеть, но нырнуть в неё можно только благодаря проксям. В дальнейшем мы указываем эти прокси программам, которые будут бультыхаться в i2pd. Добавь или раскоментируй.

# Указываем где лежат сертификат, изначально вообще закоментировано
certsdir = /home/x/.i2pd/certificates

[http]
address = 127.0.0.1
port = 7070

[httpproxy]  
enabled = true  
address = 127.0.0.1  
port = 4444  
  
[socksproxy]  
enabled = true  
address = 127.0.0.1  
port = 4447

Сохраняем и запускаем от пользователя:

i2pd

Если появились ошибки:

❯ i2pd
i2pd: Could not lock pid file /home/x/.i2pd/i2pd.pid: Resource temporarily unavailable

Просто удали файл .pid:

rm /home/x/.i2pd/i2pd.pid

❯ i2pd
17:10:39@407/none - i2pd v2.59.0 (0.9.68) starting...
17:10:46@407/error - Reseed: Failed to reseed from https://reseed.sahil.world:443/i2pseeds.su3, http code 418
17:10:46@407/warn - Reseed: SU3 download failed

Скорее всего нет доступа к urls, указаным в receed, проверьте их, открытием в браузере: открываем

nvim  ~/.i2pd/i2pd.conf

Ищём receed, смотрим urls и либо раскоментируем, либо пропишем свои, если default протухли:

[receed]
urls = https://reseed.stormycloud.org/,https://i2phides.me/,https://www2.mk16.de/

Сохрани и пробуй повторно запускать

i2pd

Проверяй ссылки, такой рабочий вариант: image.png Сами ссылки на .su3 откроются с 403, так как для стороннего орка путь закрыт. Качай через curl чтобы вручную вставить. Указывай или рабочие urls, или если нашёл .su3, то указываешь прямо путь локальный к нему.

Тут в общем надо найти файл "i2pseeds .su3". скачать его и указать в urls полным путём к файлу, если серваки сверху, указанные в url в ошибке или не отдают что нам надо.

[receed]
urls = /home/x/.i2pd/reseeds/i2pseeds.su3

reseed даёт тебе только список пиров (router infos) и требуется только для первого запуска.

Что реально делает reseed

  • скачивает пачку netDb
  • ты подключаешься к сети
  • дальше живёшь через peers

👉 reseed НЕ участвует в:

  • трафике
  • туннелях
  • анонимности

reseed нужен только один раз

👉 После первого удачного bootstrap:

  • i2pd скачивает netDb (роутеры сети)
  • сохраняет в ~/.i2pd/netDb

И дальше:

🔥 он уже сам живёт и обновляется через peers
без всяких reseed

Когда reseed снова понадобится

Только если ты сам всё сломаешь:

  • удалил:

    ~/.i2pd/netDb

  • долго не запускал (недели+)

  • или база устарела/пустая


❯ i2pd
17:14:57@807/none - i2pd v2.59.0 (0.9.68) starting...
17:15:52@301/error - NetDbReq: No known routers, reseed seems to be totally failed

Это уже значит не “конфиг сломан”, а bootstrap не состоялся вообще: у роутера ноль известных узлов, поэтому он пишет No known routers, reseed seems to be totally failed. i2pd как раз использует секцию [reseed] для первичной загрузки списка роутеров, а reseed.urls принимает список URL через запятую.