Чаще всего сбои I2P router происходят из‑за проблем с пробросом портов, недостаточного выделения полосы пропускания и недостаточного времени на инициализацию. Эти три фактора объясняют более 70% сообщённых проблем. Router требует как минимум 10-15 минут после запуска для полной интеграции в сеть, 128 KB/sec минимальной полосы пропускания (рекомендуется 256 KB/sec) и корректный проброс портов UDP/TCP для достижения статуса non-firewalled (без блокировки фаерволом). Новые пользователи часто ожидают немедленной связности и слишком рано перезапускают router, что сбрасывает прогресс интеграции и создаёт раздражающий замкнутый цикл. В этом руководстве приведены подробные решения всех основных проблем I2P, затрагивающих версии 2.10.0 и новее.
Архитектура анонимности I2P по своей природе жертвует скоростью ради конфиденциальности за счёт многохоповых шифрованных tunnel-ов. Понимание этого фундаментального дизайна помогает пользователям формировать реалистичные ожидания и эффективно устранять неполадки, вместо того чтобы принимать нормальное поведение за проблемы.
Router не запускается или сразу аварийно завершает работу
Наиболее распространённые сбои при запуске вызваны конфликтами портов, несовместимостью версии Java или повреждёнными файлами конфигурации. Прежде чем углубляться в диагностику, проверьте, не запущен ли уже другой экземпляр I2P.
Убедитесь, что нет конфликтующих процессов:
Linux: ps aux | grep i2p или netstat -tulpn | grep 7657
Windows: Диспетчер задач → Подробности → найдите java.exe с i2p в командной строке
macOS: Мониторинг системы → найдите “i2p”
Если существует процесс-зомби, завершите его: pkill -9 -f i2p (Linux/Mac) или taskkill /F /IM javaw.exe (Windows)
Проверьте совместимость версии Java:
I2P 2.10.0+ требует минимум Java 8, рекомендуется Java 11 или новее. Проверьте, что ваша установка показывает “mixed mode” (а не “interpreted mode”):
java -version
Должно отображаться: OpenJDK или Oracle Java, версия 8+, “mixed mode”
Избегайте: GNU GCJ, устаревшие реализации Java, режимы только интерпретации
Частые конфликты портов возникают, когда несколько служб конкурируют за порты I2P по умолчанию. Консоль router (7657), I2CP (7654), SAM (7656) и HTTP‑прокси (4444) должны быть свободны. Проверьте наличие конфликтов: netstat -ano | findstr "7657 4444 7654" (Windows) или lsof -i :7657,4444,7654 (Linux/Mac).
Повреждение файла конфигурации проявляется немедленными аварийными завершениями работы с ошибками разбора в журналах. Router.config требует кодировку UTF-8 без BOM, использует = в качестве разделителя (не :) и запрещает использование некоторых специальных символов. Создайте резервную копию, затем проверьте: ~/.i2p/router.config (Linux), %LOCALAPPDATA%\I2P\router.config (Windows), ~/Library/Application Support/i2p/router.config (macOS).
Чтобы сбросить конфигурацию с сохранением идентичности: остановите I2P, сделайте резервную копию router.keys и каталога keyData, удалите router.config, перезапустите. router заново сгенерирует конфигурацию по умолчанию.
Слишком маленький размер кучи Java вызывает сбои с ошибкой OutOfMemoryError. Отредактируйте wrapper.config и увеличьте wrapper.java.maxmemory с значения по умолчанию 128 или 256 до минимум 512 (1024 для routers с высокой пропускной способностью). Это требует полной остановки, ожидания 11 минут, затем перезапуска - нажатие “Restart” в консоли не применит изменение.
Устранение статуса “Network: Firewalled”
Статус Firewalled означает, что router не может принимать прямые входящие соединения, вынуждая полагаться на introducers (узлы-интродьюсеры). Пока router работает в этом состоянии, производительность значительно снижается и вклад в сеть остаётся минимальным. Для достижения состояния non-firewalled (без блокировки файрволом) требуется корректный проброс портов.
router случайным образом выбирает порт в диапазоне 9000-31000 для связи. Узнайте свой порт на http://127.0.0.1:7657/confignet - найдите “UDP Port” и “TCP Port” (обычно это одно и то же число). Для оптимальной производительности необходимо настроить переадресацию портов и UDP, и TCP, хотя один только UDP обеспечивает базовую функциональность.
Включить автоматический проброс портов через UPnP (самый простой способ):
- Откройте http://127.0.0.1:7657/confignet
- Отметьте “Enable UPnP”
- Сохраните изменения и перезапустите router
- Подождите 5–10 минут и убедитесь, что статус изменился с “Network: Firewalled” на “Network: OK”
UPnP требует поддержки со стороны router (по умолчанию включена на большинстве потребительских routers, выпущенных после 2010 года) и корректной настройки сети.
Ручной проброс портов (требуется, если UPnP не работает):
- Запишите ваш I2P‑порт со страницы http://127.0.0.1:7657/confignet (например, 22648)
- Найдите свой локальный IP‑адрес:
ipconfig(Windows),ip addr(Linux), Системные настройки → Сеть (macOS) - Откройте админ‑интерфейс вашего router (обычно 192.168.1.1 или 192.168.0.1)
- Перейдите к Переадресации портов (может находиться в разделах Advanced, NAT или Virtual Servers)
- Создайте два правила:
- Внешний порт: [ваш I2P‑порт] → Внутренний IP: [ваш компьютер] → Внутренний порт: [тот же] → Протокол: UDP
- Внешний порт: [ваш I2P‑порт] → Внутренний IP: [ваш компьютер] → Внутренний порт: [тот же] → Протокол: TCP
- Сохраните конфигурацию и при необходимости перезагрузите ваш router
Проверьте переадресацию портов с помощью онлайн-сервисов проверки после настройки. Если проверка не удаётся, проверьте настройки брандмауэра - как системный брандмауэр, так и брандмауэр антивируса должны разрешать порт I2P.
Альтернатива Hidden mode для ограничительных сетей, где проброс портов невозможен: Включите на http://127.0.0.1:7657/confignet → отметьте “Hidden mode”. router остаётся за файерволом, но оптимизирует работу для этого состояния, используя исключительно интродьюсеров SSU. Производительность будет ниже, но работоспособность сохранится.
Router застрял в состояниях “Starting” или “Testing”
Эти временные состояния в ходе первичной загрузки обычно проходят в течение 10-15 минут для новых установок или 3-5 минут для уже функционирующих routers. Преждевременное вмешательство часто усугубляет проблемы.
“Network: Testing” означает, что router проверяет достижимость через различные типы соединений (прямое, introducers (узлы-посредники для установления соединений), несколько версий протокола). Это нормально в течение первых 5-10 минут после запуска. Router тестирует несколько сценариев, чтобы определить оптимальную конфигурацию.
“Rejecting tunnels: starting up” появляется на этапе начальной инициализации (bootstrap), когда у router недостаточно информации о пирах. Router не будет участвовать в транзитном трафике, пока не будет достаточно интегрирован в сеть. Это сообщение должно исчезнуть через 10–20 минут, когда в netDb накопится информация о 50+ routers.
Рассинхронизация часов срывает проверку доступности. I2P требует, чтобы системное время отличалось от сетевого не более чем на ±60 секунд. Разница более 90 секунд приводит к автоматическому отклонению соединений. Синхронизируйте системные часы:
Linux: sudo timedatectl set-ntp true && sudo systemctl restart systemd-timesyncd
Windows: Панель управления → Дата и время → Время по Интернету → Обновить сейчас → Включить автоматическую синхронизацию
macOS: Системные настройки → Дата и время → Включить «Устанавливать дату и время автоматически»
После корректировки смещения часов полностью перезапустите I2P для корректной интеграции.
Недостаточное выделение полосы пропускания не позволяет успешно выполнить тестирование. router нуждается в достаточной пропускной способности для построения тестовых tunnels. Настройте по адресу http://127.0.0.1:7657/config:
- Минимально достаточная: Входящая 96 КБ/с, Исходящая 64 КБ/с
- Рекомендуемый стандарт: Входящая 256 КБ/с, Исходящая 128 КБ/с
- Оптимальная производительность: Входящая 512+ КБ/с, Исходящая 256+ КБ/с
- Процент отдачи: 80% (позволяет router выделять полосу пропускания для сети)
Более низкая пропускная способность может работать, но увеличивает время интеграции с минут до часов.
Повреждённый netDb из‑за некорректного завершения работы или ошибок диска вызывает бесконечные циклы тестирования. router не может завершить тестирование без корректных данных о пирах:
# Stop I2P completely
i2prouter stop # or systemctl stop i2p
# Delete corrupted database (safe - will reseed automatically)
rm -rf ~/.i2p/netDb/*
# Restart and allow 10-15 minutes for reseed
i2prouter start
Windows: Удалите содержимое %APPDATA%\I2P\netDb\ или %LOCALAPPDATA%\I2P\netDb\
Блокировка reseed (процедуры получения начальных пиров) брандмауэром не позволяет получить начальные пиры. Во время начальной инициализации I2P получает информацию о router с HTTPS-серверов reseed. Корпоративные/провайдерские брандмауэры могут блокировать эти соединения. Настройте прокси для reseed на http://127.0.0.1:7657/configreseed, если работаете в ограничительных сетях.
Низкие скорости, тайм-ауты и сбои при построении tunnel
Архитектура I2P по своей природе приводит к скоростям в 3–10 раз ниже, чем в открытом интернете (clearnet) из‑за многохопового шифрования, накладных расходов на уровне пакетов и непредсказуемости маршрутов. Построение tunnel проходит через несколько routers, и каждый из них добавляет задержку. Понимание этого помогает не принимать нормальное поведение за проблемы.
Типичные ожидания по производительности:
- Просмотр .i2p-сайтов: поначалу загрузка страниц занимает 10-30 секунд, быстрее после установления tunnel
- Загрузка торрентов через I2PSnark: 10-100 КБ/с на торрент в зависимости от количества сидеров и условий в сети
- Загрузка больших файлов: требуется терпение - файлы размером в мегабайты могут занимать минуты, гигабайты - часы
- Первое подключение самое медленное: построение tunnel занимает 30-90 секунд; последующие подключения используют существующие tunnels
Показатель успешности построения Tunnel указывает на состояние сети. Проверьте на http://127.0.0.1:7657/tunnels:
- Выше 60%: Нормальная, стабильная работа
- 40-60%: Погранично, рассмотрите увеличение пропускной способности или снижение нагрузки
- Ниже 40%: Проблемно - указывает на недостаточную пропускную способность, проблемы с сетью или неудачный выбор пиров
Увеличьте выделение пропускной способности в качестве первоочередной оптимизации. Большинство случаев низкой производительности связано с нехваткой пропускной способности. На http://127.0.0.1:7657/config увеличивайте лимиты постепенно и следите за графиками на http://127.0.0.1:7657/graphs.
Для DSL/Cable (подключения 1-10 Мбит/с): - Входящая: 400 КБ/с - Исходящая: 200 КБ/с - Доля: 80% - Память: 384 МБ (измените wrapper.config)
Для высокоскоростных подключений (10-100+ Мбит/с): - Входящая скорость: 1500 КБ/с - Исходящая скорость: 1000 КБ/с - Доля: 80-100% - Память: 512-1024 МБ - Рассмотрите: увеличить число участвующих tunnels до 2000-5000 на http://127.0.0.1:7657/configadvanced
Оптимизируйте конфигурацию tunnel для повышения производительности. Перейдите к настройкам отдельных tunnel по адресу http://127.0.0.1:7657/i2ptunnel и отредактируйте каждый tunnel:
- Количество tunnel: Увеличьте с 2 до 3-4 (больше доступных маршрутов)
- Количество резервных: Установите 1-2 (быстрое переключение на резерв при сбое tunnel)
- Длина tunnel: По умолчанию 3 хопа обеспечивают хороший баланс; уменьшение до 2 повышает скорость, но снижает анонимность
Нативная криптографическая библиотека (jbigi) обеспечивает производительность в 5–10 раз выше, чем шифрование на чистой Java. Проверьте, что библиотека загружена, на http://127.0.0.1:7657/logs - ищите “jbigi loaded successfully” или “Using native CPUID implementation”. Если отсутствует:
Linux: Обычно автоматически обнаруживается и загружается из ~/.i2p/jbigi-*.so Windows: Проверьте наличие jbigi.dll в каталоге установки I2P Если отсутствует: Установите инструменты сборки и соберите из исходников или скачайте предварительно собранные бинарные файлы из официальных репозиториев
Поддерживайте непрерывную работу router. Каждый перезапуск сбрасывает интеграцию, из‑за чего требуется 30–60 минут на восстановление сети tunnel и связей с пирами. Стабильные router с высоким аптаймом получают приоритет при построении tunnel, что создает положительную обратную связь, улучшая производительность.
Высокая загрузка процессора и потребление памяти
Чрезмерное потребление ресурсов обычно указывает на недостаточное выделение памяти, отсутствие нативных криптографических библиотек или чрезмерную степень участия в сети. Хорошо настроенные routers должны потреблять 10–30% CPU при активном использовании и поддерживать стабильное использование памяти ниже 80% от выделенной кучи.
Проблемы с памятью проявляются следующим образом: - Графики использования памяти с плоской вершиной (зафиксированы на максимуме) - Частые сборки мусора (пилообразный рисунок с резкими провалами) - OutOfMemoryError в журналах - Router становится неотзывчивым под нагрузкой - Автоматическое завершение работы из‑за исчерпания ресурсов
Увеличьте размер кучи Java в wrapper.config (требуется полная остановка):
# Linux: ~/.i2p/wrapper.config
# Windows: %APPDATA%\I2P\wrapper.config
# Find and modify:
wrapper.java.maxmemory=512
# Recommendations by usage:
# Light browsing only: 256
# Standard use (browsing + light torrenting): 512
# Heavy use (multiple applications, active torrenting): 768-1024
# Floodfill or very high bandwidth: 1024-2048
Критично: После редактирования wrapper.config необходимо полностью остановить (а не перезапускать), подождать 11 минут для корректного завершения работы, затем запустить заново. Кнопка «Restart» в консоли router не перечитывает настройки wrapper.
Оптимизация CPU требует нативной криптографической библиотеки. Операции BigInteger в чистой Java потребляют в 10-20 раз больше ресурсов CPU, чем нативные реализации. Проверьте состояние jbigi по адресу http://127.0.0.1:7657/logs во время запуска. Без jbigi нагрузка на CPU будет подскакивать до 50-100% во время построения tunnel и операций шифрования.
Снизьте нагрузку от участвующих tunnel если router перегружен:
- Откройте http://127.0.0.1:7657/configadvanced
- Установите
router.maxParticipatingTunnels=1000(по умолчанию 8000) - Уменьшите долю шеринга на http://127.0.0.1:7657/config с 80% до 50%
- Отключите режим floodfill, если он включен:
router.floodfillParticipant=false
Ограничьте полосу пропускания I2PSnark и количество одновременно активных торрентов. Торрент-трафик потребляет значительные ресурсы. На http://127.0.0.1:7657/i2psnark:
- Ограничьте число активных торрентов до 3-5
- Установите “Up BW Limit” и “Down BW Limit” на разумные значения (по 50-100 KB/sec каждый)
- Останавливайте торренты, когда они не нужны
- Избегайте одновременной раздачи десятков торрентов
Следите за использованием ресурсов через встроенные графики по адресу http://127.0.0.1:7657/graphs. Память должна иметь запас, а не образовывать плато на максимуме. Всплески загрузки CPU во время построения tunnel — это нормально; устойчиво высокая загрузка CPU указывает на проблемы с конфигурацией.
Для систем с сильно ограниченными ресурсами (Raspberry Pi, старое оборудование) рассмотрите i2pd (реализация на C++) в качестве альтернативы. i2pd требует ~130 МБ ОЗУ, по сравнению с 350+ МБ для Java I2P, и использует ~7% ЦП против 70% при схожей нагрузке. Учтите, что в i2pd нет встроенных приложений и требуются внешние инструменты.
Проблемы с торрентами в I2PSnark
Интеграция I2PSnark с архитектурой router в I2P требует понимания того, что торрентинг полностью зависит от здоровья tunnels router. Торренты не запустятся, пока router не достигнет достаточной интеграции с 10+ активными пирами и работающими tunnels.
Торренты, застрявшие на 0%, обычно указывают на:
- Router не полностью интегрирован: Подождите 10–15 минут после запуска I2P, прежде чем ожидать активности торрентов
- DHT (распределенная хеш-таблица) отключён: Включите на http://127.0.0.1:7657/i2psnark → Configuration → отметьте “Enable DHT” (по умолчанию включено начиная с версии 0.9.2)
- Недействительные или неработающие трекеры: Торренты I2P требуют трекеров, предназначенных для I2P - трекеры clearnet (обычного интернета) не будут работать
- Недостаточная конфигурация tunnels: Увеличьте число tunnels в I2PSnark Configuration → раздел Tunnels
Настройте I2PSnark tunnels для повышения производительности:
- Входящие tunnels: 3-5 (по умолчанию 2 для Java I2P, 5 для i2pd)
- Исходящие tunnels: 3-5
- Длина tunnel: 3 хопа (уменьшите до 2 ради скорости, но с меньшей анонимностью)
- Количество tunnel: 3 (обеспечивает стабильную производительность)
Основные торрент-трекеры I2P для добавления: - tracker2.postman.i2p (основной, наиболее надёжный) - w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p/a
Удалите любые трекеры clearnet (обычный интернет) (non-.i2p) - они не приносят пользы и создают попытки подключения, которые заканчиваются тайм-аутом.
Ошибки “Torrent not registered” возникают при сбое связи с трекером. Щелчок правой кнопкой по торренту → «Старт» принудительно выполняет переанонс. Если проблема сохраняется, проверьте доступность трекера, открыв http://tracker2.postman.i 2p в браузере, настроенном для I2P. Неактивные трекеры следует заменить рабочими альтернативами.
Пиры не подключаются несмотря на успешную работу трекера, указывает на следующее: - Router заблокирован брандмауэром (помогает проброс портов, но не обязателен) - недостаточная пропускная способность (увеличьте до 256+ КБ/с) - слишком маленький рой (у некоторых торрентов 1-2 сидера; требуется терпение) - DHT отключён (включите для обнаружения пиров без трекера)
Включите DHT (Distributed Hash Table — распределённая хеш-таблица) и PEX (Peer Exchange — обмен пирами) в настройках I2PSnark. DHT позволяет находить пиры без зависимости от трекера. PEX обнаруживает пиры через уже подключённых пиров, ускоряя обнаружение роя.
Повреждение скачанных файлов редко происходит благодаря встроенной в I2PSnark проверке целостности. Если обнаружено:
- Щелкните правой кнопкой мыши по торренту → “Check” выполняет принудительное перехеширование всех частей
- Удалите поврежденные данные торрента (сохраняется файл .torrent)
- Щелкните правой кнопкой → “Start” для повторной загрузки с проверкой частей
- Проверьте диск на ошибки, если повреждения сохраняются:
chkdsk(Windows),fsck(Linux)
Каталог наблюдения не работает требует правильной настройки:
- Настройки I2PSnark → “Папка наблюдения”: Укажите абсолютный путь (например,
/home/user/torrents/watch) - Убедитесь, что процесс I2P имеет права на чтение:
chmod 755 /path/to/watch - Поместите файлы .torrent в папку наблюдения - I2PSnark добавляет их автоматически
- Настройте “Автозапуск”: Отметьте, должны ли торренты запускаться сразу после добавления
Оптимизация производительности при работе с торрентами:
- Ограничьте число одновременно активных торрентов: максимум 3-5 для стандартных подключений
- Расставляйте приоритеты для важных загрузок: временно останавливайте низкоприоритетные торренты
- Увеличьте выделение пропускной способности для router: больше пропускной способности = лучшая производительность торрентов
- Будьте терпеливы: торренты через I2P по своей природе медленнее, чем BitTorrent в clearnet (открытом интернете)
- Раздавайте после загрузки: сеть процветает благодаря взаимности
Настройка и устранение неполадок Git поверх I2P
Операции Git через I2P требуют либо настройки прокси SOCKS, либо выделенных I2P tunnels для доступа по SSH/HTTP. Архитектура Git предполагает соединения с низкой задержкой, поэтому архитектура I2P с высокой задержкой создаёт сложности.
Настройте Git для использования SOCKS-прокси I2P:
Отредактируйте ~/.ssh/config (создайте, если не существует):
Host *.i2p
ProxyCommand nc -X 5 -x 127.0.0.1:4447 %h %p
ServerAliveInterval 60
ServerAliveCountMax 3
Compression yes
Это направляет все SSH-подключения к .i2p-хостам через SOCKS-прокси I2P (порт 4447). Параметры ServerAlive поддерживают соединение при задержках I2P.
Для операций Git по HTTP/HTTPS настройте Git глобально:
git config --global http.proxy socks5h://127.0.0.1:4447
git config --global https.proxy socks5h://127.0.0.1:4447
Примечание: socks5h выполняет разрешение DNS через прокси - это критически важно для доменов .i2p.
Создайте выделенный I2P tunnel для Git по SSH (надёжнее, чем SOCKS):
- Откройте http://127.0.0.1:7657/i2ptunnel
- “Новый клиентский tunnel” → “Standard”
- Настройте:
- Имя: Git-SSH
- Тип: Client
- Порт: 2222 (локальный порт для доступа к Git)
- Назначение: [your-git-server].i2p:22
- Автозапуск: Включено
- Количество tunnel: 3-4 (больше для надежности)
- Сохраните и запустите tunnel
- Настройте SSH на использование tunnel:
ssh -p 2222 git@127.0.0.1
Ошибки аутентификации SSH через I2P обычно возникают из-за:
- Ключ не добавлен в ssh-agent:
ssh-add ~/.ssh/id_rsa - Неверные права на файл ключа:
chmod 600 ~/.ssh/id_rsa - Tunnel не запущен: Проверьте на http://127.0.0.1:7657/i2ptunnel, что статус зелёный
- Сервер Git требует определённый тип ключа: сгенерируйте ключ ed25519, если RSA не срабатывает
Истечение времени ожидания операций Git связано с характеристиками задержки I2P:
- Увеличьте таймаут Git:
git config --global http.postBuffer 524288000(буфер 500 МБ) - Увеличьте лимит низкой скорости:
git config --global http.lowSpeedLimit 1000иgit config --global http.lowSpeedTime 600(ожидает 10 минут) - Используйте поверхностное клонирование для первичного клонирования:
git clone --depth 1 [url](загружает только последний коммит, быстрее) - Клонируйте в периоды низкой активности: сетевая перегрузка влияет на производительность I2P
Медленные операции git clone/fetch присущи архитектуре I2P. Репозиторий 100MB может передаваться через I2P 30–60 минут, тогда как на clearnet (открытый интернет) — секунды. Стратегии:
- Используйте поверхностное клонирование:
--depth 1существенно сокращает начальный объём передаваемых данных - Выполняйте выборку поэтапно: вместо полного клонирования получайте конкретные ветки:
git fetch origin branch:branch - Рассмотрите rsync поверх I2P: для очень больших репозиториев rsync может работать лучше
- Увеличьте количество tunnel: большее число tunnels обеспечивает лучшую пропускную способность при длительных крупных передачах
Ошибки “Connection refused” указывают на неправильную конфигурацию tunnel:
- Убедитесь, что I2P router запущен: проверьте http://127.0.0.1:7657
- Подтвердите, что tunnel активен и зелёный на http://127.0.0.1:7657/i2ptunnel
- Протестируйте tunnel:
nc -zv 127.0.0.1 2222(должно подключиться, если tunnel работает) - Проверьте, что назначение доступно: откройте HTTP‑интерфейс назначения, если он доступен
- Изучите журналы tunnel на http://127.0.0.1:7657/logs для поиска конкретных ошибок
Лучшие практики использования Git поверх I2P:
- Держите I2P router запущенным постоянно для стабильного доступа к Git
- Используйте ключи SSH вместо аутентификации по паролю (меньше интерактивных запросов)
- Настройте постоянные tunnels вместо временных SOCKS-подключений
- Рассмотрите размещение собственного сервера Git в I2P для лучшего контроля
- Задокументируйте свои .i2p конечные точки Git для соавторов
Доступ к eepsites и разрешение доменных имен .i2p
Самая частая причина, по которой пользователи не могут получить доступ к сайтам .i2p, — это неверная настройка прокси в браузере. Сайты I2P существуют только внутри сети I2P и требуют маршрутизации через HTTP‑прокси I2P.
Настройте параметры прокси браузера в точности:
Firefox (рекомендуется для I2P):
- Меню → Настройки → Настройки сети → кнопка “Настройки”
- Выберите “Ручная настройка прокси”
- HTTP-прокси: 127.0.0.1 Порт: 4444
- SSL-прокси: 127.0.0.1 Порт: 4444
- SOCKS-прокси: 127.0.0.1 Порт: 4447 (необязательно, для приложений SOCKS)
- Отметьте “Проксировать DNS при использовании SOCKS v5”
- Нажмите OK, чтобы сохранить
Критически важные настройки about:config в Firefox:
Перейдите на about:config и измените:
media.peerconnection.ice.proxy_only= true (предотвращает утечки IP через WebRTC)keyword.enabled= false (предотвращает перенаправление адресов .i2p на поисковые системы)network.proxy.socks_remote_dns= true (DNS через прокси)
Ограничения Chrome/Chromium:
Chrome использует системные настройки прокси, а не отдельные настройки приложения. В Windows: Параметры → найдите “proxy” → “Открыть настройки прокси на этом компьютере” → Настройте HTTP: 127.0.0.1:4444 и HTTPS: 127.0.0.1:4445.
Лучший способ: используйте расширения FoxyProxy или Proxy SwitchyOmega для выборочной маршрутизации .i2p.
Ошибки “Website Not Found In Address Book” означают, что у router отсутствует криптографический адрес домена .i2p. I2P использует локальные адресные книги вместо централизованного DNS. Решения:
Способ 1: Используйте jump services (jump-сервисы) (самый простой для новых сайтов):
Перейдите на http://stats.i
2p и найдите сайт. Нажмите ссылку addresshelper (специальная ссылка для добавления адреса в адресную книгу): http://example.i2p/?i2paddresshelper=base64destination. Ваш браузер покажет “Сохранить в адресную книгу?” - подтвердите, чтобы добавить.
Способ 2: Обновите подписки адресной книги:
- Перейдите на http://127.0.0.1:7657/dns (SusiDNS)
- Нажмите вкладку “Subscriptions”
- Проверьте активные подписки (по умолчанию: http://i2p-projekt.i 2p/hosts.txt)
- Добавьте рекомендуемые подписки:
- http://stats.i 2p/cgi-bin/newhosts.txt
- http://notbob.i 2p/hosts.txt
- http://reg.i 2p/export/hosts.txt
- Нажмите “Update Now”, чтобы принудительно выполнить немедленное обновление подписок
- Подождите 5–10 минут на обработку
Метод 3: Используйте адреса base32 (всегда работает, если сайт онлайн):
Каждый сайт .i2p имеет адрес base32: 52 случайных символа, за которыми следует .b32.i2p (например, ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq.b32.i2p). Адреса base32 обходят адресную книгу - router выполняет прямой криптографический поиск.
Типичные ошибки настройки браузера:
- Попытка использовать HTTPS на сайтах, доступных только по HTTP: большинство сайтов .i2p используют только HTTP — попытка
https://example.i2pзавершится неудачей - Забытый префикс
http://: браузер может начать поиск вместо подключения — всегда используйтеhttp://example.i2p - Включённый WebRTC: может раскрыть реальный IP-адрес — отключите в настройках Firefox или с помощью расширений
- DNS не проксируется: DNS clearnet (открытый интернет) не может разрешать .i2p — необходимо проксировать DNS-запросы
- Неверный порт прокси: 4444 для HTTP (не 4445, который — HTTPS outproxy (прокси-выход) в clearnet)
Router не полностью интегрирован препятствует доступу к любым сайтам. Проверьте достаточность интеграции:
- Проверьте, что http://127.0.0.1:7657 показывает “Network: OK” или “Network: Firewalled” (не “Network: Testing”)
- Active peers показывает минимум 10+ (оптимально 50+)
- Нет сообщения “Rejecting tunnels: starting up”
- Подождите полные 10-15 минут после запуска router, прежде чем ожидать доступ к .i2p
Настройка клиентов IRC и электронной почты следует аналогичным шаблонам прокси:
IRC: Клиенты подключаются к 127.0.0.1:6668 (IRC-прокси tunnel I2P). Отключите в IRC-клиенте настройки прокси - подключение к localhost:6668 уже проксируется через I2P.
Электронная почта (Postman): - SMTP: 127.0.0.1:7659 - POP3: 127.0.0.1:7660 - Без SSL/TLS (шифрование обеспечивается I2P tunnel) - Учетные данные из регистрации учетной записи на postman.i2p
Все эти tunnels должны отображать статус «running» (зелёный) на http://127.0.0.1:7657/i2ptunnel.
Сбои при установке и проблемы с пакетами
Пакетные установки (Debian, Ubuntu, Arch) иногда завершаются сбоем из‑за изменений в репозиториях, истечения срока действия GPG ключей или конфликтов зависимостей. В последних версиях официальные репозитории были перенесены с deb.i2p2.de/deb.i2p2.no (сняты с поддержки) на deb.i2p.net.
Обновите репозиторий Debian/Ubuntu до актуального состояния:
# Remove old repository entries
sudo rm /etc/apt/sources.list.d/i2p.list
# Add current repository
echo "deb [signed-by=/usr/share/keyrings/i2p-archive-keyring.gpg] https://deb.i2p.net/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/i2p.list
# Download and install current signing key
curl -o i2p-archive-keyring.gpg https://geti2p.net/_static/i2p-archive-keyring.gpg
sudo cp i2p-archive-keyring.gpg /usr/share/keyrings/
# Update and install
sudo apt update
sudo apt install i2p i2p-keyring
Ошибки проверки подписи GPG возникают, когда ключи репозитория истекают или меняются:
# Error: "The following signatures were invalid"
# Solution: Install current keyring package
sudo apt install i2p-keyring
# Manual key import if package unavailable
wget https://geti2p.net/_static/i2p-debian-repo.key.asc
sudo apt-key add i2p-debian-repo.key.asc
Служба не запускается после установки пакета чаще всего из-за проблем с профилем AppArmor в Debian/Ubuntu:
# Check service status
sudo systemctl status i2p.service
# Common error: "Failed at step APPARMOR spawning"
# Solution: Reconfigure without AppArmor
sudo dpkg-reconfigure -plow i2p
# Select "No" for AppArmor when prompted
# Alternative: Set profile to complain mode
sudo aa-complain /usr/sbin/wrapper
# Check logs for specific errors
sudo journalctl -xe -u i2p.service
Проблемы с правами доступа в I2P, установленном через пакетный менеджер:
# Fix ownership (package install uses 'i2psvc' user)
sudo chown -R i2psvc:i2psvc /var/lib/i2p /var/log/i2p /run/i2p
sudo chmod 750 /var/log/i2p /var/lib/i2p
# Set file descriptor limits (add to /etc/security/limits.conf)
i2psvc soft nofile 4096
i2psvc hard nofile 8192
Проблемы совместимости с Java:
I2P 2.10.0 требует минимум Java 8. На более старых системах может быть Java 7 или более ранняя версия:
# Check Java version
java -version
# Install appropriate Java (Debian/Ubuntu)
sudo apt install openjdk-11-jre-headless
# Set default Java if multiple versions installed
sudo update-alternatives --config java
Ошибки конфигурации Wrapper (Java Service Wrapper — служебная оболочка) предотвращают запуск службы:
Расположение Wrapper.config зависит от способа установки: - Установка пользователем: ~/.i2p/wrapper.config - Установка из пакета: /etc/i2p/wrapper.config или /var/lib/i2p/wrapper.config
Распространенные проблемы с wrapper.config:
- Некорректные пути:
wrapper.java.commandдолжен указывать на корректную установку Java - Недостаточный объём памяти: значение
wrapper.java.maxmemoryустановлено слишком низким (увеличьте до 512+) - Неверное расположение pidfile:
wrapper.pidfileдолжен указывать на расположение, доступное для записи - Отсутствует бинарный файл wrapper: на некоторых платформах нет предварительно скомпилированного wrapper (используйте runplain.sh как резервный вариант)
Сбои при обновлении и повреждённые обновления:
Обновления консоли Router иногда срываются во время загрузки из‑за перебоев в сети. Процедура ручного обновления:
- Скачайте i2pupdate_X.X.X.zip с https://geti2p.net/en/download
- Проверьте, что контрольная сумма SHA256 совпадает с опубликованным хэшем
- Скопируйте в каталог установки I2P как
i2pupdate.zip - Перезапустите router - обновление будет автоматически обнаружено и распаковано
- Подождите 5-10 минут, пока обновление установится
- Проверьте новую версию на http://127.0.0.1:7657
Миграция с очень старых версий (до 0.9.47) на текущие версии может завершиться неудачей из‑за несовместимых ключей подписи или удалённых возможностей. Необходимы поэтапные обновления:
- Версии старее 0.9.9: невозможно проверить текущие подписи - необходимо ручное обновление
- Версии, работающие на Java 6/7: необходимо обновить Java перед обновлением I2P до 2.x
- Существенный разрыв между версиями: сначала обновитесь до промежуточной версии (рекомендуемая контрольная точка - 0.9.47)
Когда использовать установщик, а когда пакет:
- Пакеты (apt/yum): Лучший вариант для серверов, автоматических обновлений безопасности, интеграции с системой, управления через systemd
- Установщик (.jar): Лучший вариант для установки на уровне пользователя, Windows, macOS, нестандартных установок, доступности последней версии
Повреждение конфигурационного файла и восстановление
Сохранение конфигурации I2P опирается на несколько критически важных файлов. Повреждение обычно возникает из‑за неправильного завершения работы, ошибок диска или ошибок при ручном редактировании. Понимание назначения этих файлов позволяет проводить точечное восстановление вместо полной переустановки.
Критические файлы и их назначение:
- router.keys (516+ байт): Криптографическая идентичность router - потеря этого файла создаст новую идентичность
- router.info (автоматически создается): Опубликованная информация о router - можно удалить, восстановится автоматически
- router.config (текст): Основная конфигурация - пропускная способность, сетевые настройки, предпочтения
- i2ptunnel.config (текст): Определения tunnel - клиентские/серверные tunnel, ключи, назначения
- netDb/ (каталог): База данных пиров - информация о router для участников сети
- peerProfiles/ (каталог): Статистика производительности по пирам - влияет на выбор tunnel
- keyData/ (каталог): Ключи назначений для eepsites и сервисов - потеря приведет к смене адресов
- addressbook/ (каталог): Локальные сопоставления имен хостов .i2p
Полная процедура резервного копирования перед внесением изменений:
# Stop I2P first
i2prouter stop # or: systemctl stop i2p
# Backup directory
BACKUP_DIR=~/i2p-backup-$(date +%Y%m%d-%H%M)
mkdir -p $BACKUP_DIR
# Copy critical files
cp -r ~/.i2p/router.keys $BACKUP_DIR/
cp -r ~/.i2p/*.config $BACKUP_DIR/
cp -r ~/.i2p/keyData $BACKUP_DIR/
cp -r ~/.i2p/addressbook $BACKUP_DIR/
cp -r ~/.i2p/eepsite $BACKUP_DIR/ # if hosting sites
# Optional but recommended
tar -czf $BACKUP_DIR.tar.gz $BACKUP_DIR
Симптомы повреждения Router.config:
- Router не запускается из-за ошибок разбора в журналах
- Настройки не сохраняются после перезапуска
- Появляются неожиданные значения по умолчанию
- Искажённые символы при просмотре файла
Восстановление повреждённого router.config:
- Сделайте резервную копию имеющегося:
cp router.config router.config.broken - Проверьте кодировку файла: должна быть UTF-8 без BOM
- Проверьте синтаксис: ключи используют разделитель
=(не:), у ключей не должно быть завершающих пробелов,#— только для комментариев - Распространённые проблемы: не-ASCII символы в значениях, проблемы с концами строк (CRLF vs LF)
- Если исправить не удаётся: удалите router.config - router создаст файл по умолчанию, сохранив идентичность
Важные настройки router.config, которые следует сохранить:
i2np.bandwidth.inboundKBytesPerSecond=512
i2np.bandwidth.outboundKBytesPerSecond=256
router.updatePolicy=notify
routerconsole.lang=en
router.hiddenMode=false
Утерянный или недействительный router.keys создаёт новую идентичность router. Это приемлемо, за исключением случаев:
- Работа в режиме floodfill (узел-распространитель netDb) (теряет статус floodfill)
- Размещение eepsites (скрытые сайты I2P) с опубликованным адресом (теряется непрерывность)
- Сформированная репутация в сети
Восстановление без резервной копии невозможно — создайте новую: удалите router.keys, перезапустите I2P, будет создана новая идентичность.
Ключевое различие: router.keys (идентичность) против keyData/* (службы). Потеря router.keys изменит идентичность router’а. Потеря keyData/mysite-keys.dat изменит .i2p-адрес вашего eepsite - катастрофа, если адрес уже опубликован.
Создавайте резервные копии ключей eepsite/службы отдельно:
# Identify your service keys
ls -la ~/.i2p/keyData/
# Backup with descriptive names
cp ~/.i2p/keyData/myservice-keys.dat ~/backups/myservice-keys-$(date +%Y%m%d).dat
# Store securely (encrypted if sensitive)
gpg -c ~/backups/myservice-keys-*.dat
Повреждение NetDb и peerProfiles (профили пиров):
Симптомы: Ноль активных пиров, не удаётся построить tunnels, в журналах «Database corruption detected»
Безопасное исправление (всё автоматически пройдет через reseed (получение стартовых пиров)/пересборку):
i2prouter stop
rm -rf ~/.i2p/netDb/*
rm -rf ~/.i2p/peerProfiles/*
i2prouter start
# Wait 10-15 minutes for reseed and integration
Эти каталоги содержат только кэшированную сетевую информацию — их удаление заставит выполнить новый bootstrap (первичную инициализацию), но не приведёт к потере критически важных данных.
Стратегии предотвращения:
- Всегда корректное завершение работы: Используйте
i2prouter stopили кнопку «Shutdown» в консоли router — никогда не завершайте процесс принудительно - Автоматические резервные копии: Задача cron: еженедельная резервная копия ~/.i2p на отдельный диск
- Мониторинг состояния диска: Периодически проверяйте статус SMART — сбойные диски приводят к повреждению данных
- Достаточно свободного места на диске: Поддерживайте свободными 1+ ГБ — переполненные диски вызывают повреждение данных
- Рекомендуется ИБП: Отключения питания во время записи приводят к повреждению файлов
- Контроль версий критически важных конфигураций: Репозиторий Git для router.config, i2ptunnel.config позволяет откатывать изменения
Права доступа к файлам имеют значение:
# Correct permissions (user install)
chmod 600 ~/.i2p/router.keys
chmod 600 ~/.i2p/*.config
chmod 700 ~/.i2p/keyData
chmod 755 ~/.i2p
# Never run as root - creates permission problems
Расшифровка распространённых сообщений об ошибках
Журналирование в I2P предоставляет конкретные сообщения об ошибках, которые точно указывают на проблему. Понимание этих сообщений ускоряет устранение неполадок.
“No tunnels available” появляется, когда router не построил достаточно tunnels для работы. Это нормально в течение первых 5–10 минут после запуска. Если сохраняется дольше 15 минут:
- Убедитесь, что число активных пиров > 10 на http://127.0.0.1:7657
- Проверьте, что выделенная пропускная способность достаточна (минимум 128+ КБ/с)
- Проверьте процент успешных tunnel на http://127.0.0.1:7657/tunnels (должен быть >40%)
- Просмотрите журналы на предмет причин отказа в построении tunnel
“Clock skew detected” или “NTCP2 disconnect code 7” означает, что системное время отличается от консенсуса сети более чем на 90 секунд. I2P требует точности ±60 секунд. Соединения с routers с рассинхронизированным временем автоматически отклоняются.
Исправить немедленно:
# Linux
sudo timedatectl set-ntp true
sudo systemctl restart systemd-timesyncd
date # Verify correct time
# Windows
# Control Panel → Date and Time → Internet Time → Update now
# Verify after sync
http://127.0.0.1:7657/logs # Should no longer show clock skew warnings
“Build timeout” или “Tunnel build timeout exceeded” означает, что построение tunnel через цепочку пиров не завершилось в отведённое окно тайм-аута (обычно 60 секунд). Причины:
- Медленные узлы: Router выбрал неотзывчивых участников для tunnel
- Перегрузка сети: сеть I2P испытывает высокую нагрузку
- Недостаточная пропускная способность: ваши ограничения пропускной способности препятствуют своевременному построению tunnel
- Перегруженный router: слишком много участвующих tunnels потребляют ресурсы
Решения: Увеличьте пропускную способность, уменьшите число участвующих tunnels (router.maxParticipatingTunnels на http://127.0.0.1:7657/configadvanced), включите проброс портов для улучшения выбора пиров.
“Router is shutting down” или “Graceful shutdown in progress” появляются во время обычного завершения работы или восстановления после сбоя. Корректное завершение работы может занять до 10 минут, пока router закрывает tunnels, уведомляет пиры и сохраняет состояние.
Если застрял в состоянии завершения дольше 11 минут, выполните принудительное завершение:
# Linux
kill -9 $(pgrep -f i2p)
# Windows
taskkill /F /IM javaw.exe
“java.lang.OutOfMemoryError: Java heap space” сигнализирует об исчерпании кучи. Немедленные решения:
- Отредактируйте wrapper.config:
wrapper.java.maxmemory=512(или выше) - Требуется полное выключение - перезапуск не применит изменения
- Подождите 11 минут для полного выключения
- Запустите router заново
- Проверьте выделение памяти на http://127.0.0.1:7657/graphs - должен быть виден запас
Связанные ошибки памяти:
- “GC overhead limit exceeded” (превышено ограничение по времени на сборку мусора): Слишком много времени тратится на сборку мусора - увеличьте размер кучи
- “Metaspace” (область метаданных классов Java): Пространство метаданных классов Java исчерпано - добавьте
wrapper.java.additional.X=-XX:MaxMetaspaceSize=256M
Только для Windows: Kaspersky Antivirus ограничивает кучу Java до 512 МБ независимо от настроек в wrapper.config - удалите Kaspersky Antivirus или добавьте I2P в исключения.
“Тайм-аут соединения” или “Ошибка I2CP - порт 7654” когда приложения пытаются подключиться к router:
- Проверьте, что router запущен: http://127.0.0.1:7657 должен отвечать
- Проверьте порт I2CP:
netstat -an | grep 7654должно показать LISTENING - Убедитесь, что брандмауэр localhost разрешает:
sudo ufw allow from 127.0.0.1 - Проверьте, что приложение использует правильный порт (I2CP=7654, SAM=7656)
“Certificate validation failed” или “RouterInfo corrupt” во время reseed (ресид):
Основные причины: смещение системных часов (сначала исправьте), повреждённый netDb, недействительные reseed certificates (сертификаты серверов ресида)
# After fixing clock:
i2prouter stop
rm -rf ~/.i2p/netDb/* # Delete corrupted database
i2prouter start # Auto-reseeds with fresh data
“Database corruption detected” указывает на повреждение данных на уровне диска в netDb или peerProfiles (каталог профилей пиров):
# Safe fix - all will rebuild
i2prouter stop
rm -rf ~/.i2p/netDb/* ~/.i2p/peerProfiles/*
i2prouter start
Проверьте состояние диска с помощью утилит SMART — повторяющееся повреждение данных указывает на выход из строя накопителя.
Проблемы, специфичные для платформы
Различные операционные системы создают специфические сложности при развертывании I2P, связанные с правами доступа, политиками безопасности и интеграцией с системой.
Проблемы с правами доступа и службами в Linux
I2P, установленный из пакета, запускается от имени системного пользователя i2psvc (Debian/Ubuntu) или i2p (другие дистрибутивы), что требует определённых прав доступа:
# Fix package install permissions
sudo chown -R i2psvc:i2psvc /var/lib/i2p /var/log/i2p /run/i2p
sudo chmod 750 /var/log/i2p /var/lib/i2p
sudo chmod 644 /var/lib/i2p/*.config
# User install permissions (should be your user)
chown -R $USER:$USER ~/.i2p
chmod 700 ~/.i2p
chmod 600 ~/.i2p/router.keys ~/.i2p/*.config
Ограничения на файловые дескрипторы влияют на возможности router по обслуживанию соединений. Значение по умолчанию (1024) недостаточно для router с высокой пропускной способностью:
# Check current limits
ulimit -n
# Temporary increase
ulimit -n 4096
# Permanent fix: Edit /etc/security/limits.conf
i2psvc soft nofile 4096
i2psvc hard nofile 8192
# Systemd override
sudo mkdir -p /etc/systemd/system/i2p.service.d/
sudo nano /etc/systemd/system/i2p.service.d/override.conf
# Add:
[Service]
LimitNOFILE=8192
sudo systemctl daemon-reload
sudo systemctl restart i2p
Конфликты AppArmor, распространённые в Debian/Ubuntu, препятствуют запуску службы:
# Error: "Failed at step APPARMOR spawning /usr/sbin/wrapper"
# Cause: AppArmor profile missing or misconfigured
# Solution 1: Disable AppArmor for I2P
sudo aa-complain /usr/sbin/wrapper
# Solution 2: Reconfigure package without AppArmor
sudo dpkg-reconfigure -plow i2p
# Select "No" when asked about AppArmor
# Solution 3: LXC/Proxmox containers - disable AppArmor in container config
lxc.apparmor.profile: unconfined
Проблемы с SELinux на RHEL/CentOS/Fedora:
# Temporary: Set permissive mode
sudo setenforce 0
# Permanent: Generate custom policy
sudo ausearch -c 'java' --raw | audit2allow -M i2p_policy
sudo semodule -i i2p_policy.pp
# Or disable SELinux for I2P process (less secure)
sudo semanage permissive -a i2p_t
Устранение неполадок службы SystemD:
# Detailed service status
sudo systemctl status i2p.service -l
# Full logs
sudo journalctl -xe -u i2p.service
# Follow logs live
sudo journalctl -f -u i2p.service
# Restart with logging
sudo systemctl restart i2p.service && sudo journalctl -f -u i2p.service
Вмешательство брандмауэра Windows и антивируса
Windows Defender и сторонние антивирусы часто помечают I2P как угрозу из‑за характерных шаблонов сетевого поведения. Правильная настройка предотвращает ненужные блокировки при сохранении безопасности.
Настройте брандмауэр Защитника Windows:
# Run PowerShell as Administrator
# Find Java path (adjust for your Java installation)
$javaPath = "C:\Program Files\Eclipse Adoptium\jdk-11.0.16.101-hotspot\bin\javaw.exe"
# Create inbound rules
New-NetFirewallRule -DisplayName "I2P Java" -Direction Inbound -Program $javaPath -Action Allow
New-NetFirewallRule -DisplayName "I2P UDP" -Direction Inbound -Protocol UDP -LocalPort 22648 -Action Allow
New-NetFirewallRule -DisplayName "I2P TCP" -Direction Inbound -Protocol TCP -LocalPort 22648 -Action Allow
# Add exclusions to Windows Defender
Add-MpPreference -ExclusionPath "C:\Program Files\i2p"
Add-MpPreference -ExclusionPath "$env:APPDATA\I2P"
Add-MpPreference -ExclusionPath "$env:LOCALAPPDATA\I2P"
Add-MpPreference -ExclusionProcess "javaw.exe"
Замените порт 22648 на ваш фактический порт I2P, указанный на http://127.0.0.1:7657/confignet.
Специфическая проблема Kaspersky Antivirus: компонент Kaspersky “Application Control” ограничивает кучу Java до 512 МБ вне зависимости от настроек в wrapper.config. Это приводит к OutOfMemoryError на router с высокой пропускной способностью.
Решения: 1. Добавьте I2P в исключения Kaspersky: Настройки → Дополнительно → Угрозы и исключения → Управление исключениями 2. Или удалите Kaspersky (рекомендуется для корректной работы I2P)
Общие рекомендации по сторонним антивирусам:
- Добавьте каталог установки I2P в исключения
- Добавьте %APPDATA%\I2P и %LOCALAPPDATA%\I2P в исключения
- Исключите javaw.exe из поведенческого анализа
- Отключите функции “Network Attack Protection”, которые могут мешать протоколам I2P
macOS Gatekeeper (механизм безопасности macOS для проверки приложений) блокирует установку
Gatekeeper в macOS препятствует запуску неподписанных приложений. Установщики I2P не подписаны Apple Developer ID, что приводит к предупреждениям безопасности.
Обход Gatekeeper для установщика I2P:
# Method 1: Remove quarantine attribute
xattr -d com.apple.quarantine ~/Downloads/i2pinstall_*.jar
java -jar ~/Downloads/i2pinstall_*.jar
# Method 2: Use System Settings (macOS 13+)
# Try to open installer → macOS blocks it
# System Settings → Privacy & Security → scroll down
# Click "Open Anyway" next to I2P warning
# Confirm in dialog
# Method 3: Control-click installer
# Control-click (right-click) i2pinstall_*.jar
# Select "Open" from menu → "Open" again in dialog
# Bypasses Gatekeeper for this specific file
После установки запуск может по-прежнему вызывать предупреждения:
# If I2P won't start due to Gatekeeper:
xattr -dr com.apple.quarantine ~/i2p/
Никогда не отключайте Gatekeeper (функция безопасности macOS) постоянно - это представляет угрозу безопасности для других приложений. Используйте только исключения для конкретных файлов.
Настройка брандмауэра macOS:
- Системные настройки → Защита и безопасность → Брандмауэр → Параметры брандмауэра
- Нажмите “+”, чтобы добавить приложение
- Перейдите к каталогу установки Java (например,
/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/bin/java) - Добавьте и установите значение “Разрешить входящие соединения”
Проблемы приложения I2P на Android
Ограничения версий Android и ограниченность ресурсов создают особые сложности.
Минимальные требования: - Требуется Android 5.0+ (API level 21+) для текущих версий - минимум 512 МБ ОЗУ, рекомендуется 1 ГБ+ - 100 МБ места для приложения и данных router - Для I2P должны быть отключены ограничения фоновой работы приложения
Приложение сразу вылетает:
- Проверьте версию Android: Настройки → О телефоне → Версия Android (должна быть 5.0+)
- Удалите все версии I2P: Установите только один вариант:
- net.i2p.android (Google Play)
- net.i2p.android.router (F-Droid)
Одновременная установка нескольких вариантов вызывает конфликт
- Очистьте данные приложения: Настройки → Приложения → I2P → Хранилище → Очистить данные
- Переустановите начисто
Оптимизация батареи убивает router:
Android агрессивно завершает фоновые приложения для экономии заряда аккумулятора. Для I2P нужно добавить исключение:
- Настройки → Батарея → Оптимизация батареи (или Использование батареи приложениями)
- Найдите I2P → Не оптимизировать (или Разрешить фоновую активность)
- Настройки → Приложения → I2P → Батарея → Разрешить фоновую активность + Снять ограничения
Проблемы с подключением на мобильных устройствах:
- Для начальной синхронизации (bootstrap) требуется Wi‑Fi: Начальная процедура reseed (получение стартовых узлов) загружает значительный объём данных — используйте Wi‑Fi, а не сотовую связь
- Изменения сети: I2P плохо обрабатывает переключение сетей — перезапустите приложение после перехода между Wi‑Fi и сотовой связью
- Пропускная способность для мобильной связи: Настройте консервативно на 64-128 КБ/с, чтобы избежать исчерпания сотового трафика
Оптимизация производительности для мобильных устройств:
- Приложение I2P → Меню → Настройки → Пропускная способность
- Установите подходящие ограничения: 64 KB/sec входящая, 32 KB/sec исходящая для сотовой связи
- Сократите количество участвующих tunnels: Настройки → Дополнительно → Max participating tunnels: 100-200
- Включите “Останавливать I2P при выключенном экране” для экономии заряда батареи
Торренты на Android:
- Ограничьте количество одновременно активных торрентов до 2–3
- Снизьте агрессивность DHT
- Используйте WiFi только для торрентов
- Примите более низкие скорости на мобильных устройствах
Проблемы с Reseed (получением начальных данных netDb) и bootstrap (начальной инициализацией)
Новые установки I2P требуют reseeding (первичное получение начальной информации о пирах) - загрузки этих данных с публичных HTTPS-серверов для присоединения к сети. Проблемы с reseed оставляют пользователей без пиров и без доступа к сети.
“No active peers” после чистой установки обычно указывает на сбой reseed (получение начальных пиров). Симптомы:
- Известные пиры: 0 или их число держится ниже 5
- “Network: Testing” сохраняется дольше 15 минут
- В логах видно “Reseed failed” или ошибки подключения к серверам reseed (серверы первичной загрузки пиров)
Почему не удаётся reseed (начальная загрузка пиров):
- Блокировка HTTPS межсетевым экраном: Корпоративные/ISP межсетевые экраны блокируют подключения к reseed server (сервер начальной загрузки I2P) (порт 443)
- Ошибки SSL-сертификатов: В системе отсутствуют актуальные корневые сертификаты
- Требуется прокси: Сеть требует HTTP/SOCKS-прокси для внешних подключений
- Смещение системного времени: Проверка SSL-сертификатов завершается ошибкой, если системное время указано неверно
- Географическая цензура: Некоторые страны/провайдеры блокируют известные reseed servers
Принудительный ручной ресид:
- Откройте http://127.0.0.1:7657/configreseed
- Нажмите “Save changes and reseed now”
- Следите за http://127.0.0.1:7657/logs на предмет “Reseed got XX router infos”
- Дайте 5-10 минут на обработку
- Проверьте http://127.0.0.1:7657 - показатель Known peers должен увеличиться до 50+
Настройте reseed proxy (прокси для начальной загрузки узлов сети) для сетей с ограничениями:
http://127.0.0.1:7657/configreseed → Настройка прокси:
- HTTP-прокси: [proxy-server]:[port]
- Или SOCKS5: [socks-server]:[port]
- Включить “Use proxy for reseed only” (reseed — начальная загрузка узлов)
- Учетные данные, если требуется
- Сохранить и принудительно выполнить reseed
Альтернатива: Tor-прокси для reseed (процедуры начальной загрузки пиров):
Если запущены Tor Browser или демон Tor:
- Тип прокси: SOCKS5
- Хост: 127.0.0.1
- Порт: 9050 (порт SOCKS Tor по умолчанию)
- Включить и выполнить reseed (процедура начальной загрузки узлов)
Ручной reseed (ресид) через файл su3 (в крайнем случае):
Если все автоматические попытки reseed (повторное получение начальных данных о пирах) терпят неудачу, получите файл reseed по стороннему каналу:
- Скачайте i2pseeds.su3 из доверенного источника через неограниченное подключение (https://reseed.i2p.rocks/i2pseeds.su3 , https://reseed-fr.i2pd.xyz/i2pseeds.su3 )
- Полностью остановите I2P
- Скопируйте i2pseeds.su3 в каталог ~/.i2p/
- Запустите I2P — он автоматически извлечёт и обработает файл
- Удалите i2pseeds.su3 после обработки
- Убедитесь, что число пиров увеличивается на http://127.0.0.1:7657
Ошибки SSL-сертификатов при reseed (получение начальных узлов сети):
Error: "Reseed: Certificate verification failed"
Cause: System root certificates outdated or missing
Решения:
# Linux - update certificates
sudo apt install ca-certificates
sudo update-ca-certificates
# Windows - install KB updates for root certificate trust
# Or install .NET Framework (includes certificate updates)
# macOS - update system
# Software Update includes certificate trust updates
Зависло на 0 известных пирах более 30 минут:
Указывает на полный сбой reseed (получение начальных пиров). Порядок устранения неполадок:
- Проверьте корректность системного времени (самая частая проблема — исправьте СНАЧАЛА)
- Проверьте подключение по HTTPS: Попробуйте открыть https://reseed.i2p.rocks в браузере — если не открывается, проблема с сетью
- Проверьте журналы I2P на http://127.0.0.1:7657/logs на предмет конкретных ошибок reseed (получение начального списка узлов)
- Попробуйте другой reseed URL: http://127.0.0.1:7657/configreseed → добавьте пользовательский reseed URL: https://reseed-fr.i2pd.xyz/
- Используйте ручной метод с файлом su3, если автоматические попытки исчерпаны
Reseed servers (серверы первичной загрузки) периодически недоступны: I2P включает несколько жёстко заданных reseed servers. Если один из них отказывает, router автоматически пробует другие. Полный отказ всех reseed servers крайне редок, но возможен.
Текущие активные ресид-серверы (по состоянию на октябрь 2025 года):
Добавьте как пользовательские URL-адреса, если возникают проблемы с URL-адресами по умолчанию.
Для пользователей в регионах с жёсткой цензурой:
Рассмотрите возможность использования мостов Snowflake/Meek (подключаемых транспортов Tor для обхода блокировок) через Tor для первичного reseed (загрузки начальных данных о пирах), а затем переключитесь на прямое подключение к I2P, как только вы подключитесь к сети. Или получите i2pseeds.su3 с помощью стеганографии, по электронной почте или через USB-накопитель за пределами зоны цензуры.
Когда обращаться за дополнительной помощью
Это руководство охватывает подавляющее большинство проблем I2P, но некоторые из них требуют внимания разработчиков или экспертных знаний сообщества.
Обращайтесь за помощью к сообществу I2P, когда:
- Router стабильно падает после выполнения всех шагов по устранению неполадок
- Утечки памяти, приводящие к устойчивому росту использования памяти сверх выделенной кучи
- Уровень успешности Tunnel остается ниже 20% несмотря на корректную настройку
- Новые ошибки в журналах, не охваченные данным руководством
- Выявленные уязвимости безопасности
- Запросы новых функций или предложения по улучшениям
Перед обращением за помощью соберите диагностическую информацию:
- Версия I2P: http://127.0.0.1:7657 (например, “2.10.0”)
- Версия Java: вывод
java -version - Операционная система и версия
- Статус router: состояние сети, количество активных пиров, участвующие tunnels
- Конфигурация пропускной способности: входящие/исходящие лимиты
- Состояние переадресации портов: Firewalled или OK
- Соответствующие выдержки из журналов: последние 50 строк с ошибками из http://127.0.0.1:7657/logs
Официальные каналы поддержки:
- Форум: https://i2pforum.net (клирнет) или http://i2pforum.i 2p (внутри I2P)
- IRC: #i2p на Irc2P (irc.postman.i2p через I2P) или irc.freenode.net (клирнет)
- Reddit: https://reddit.com/r/i2p для обсуждений в сообществе
- Трекер ошибок: https://i2pgit.org/i2p-hackers/i2p.i2p/-/issues для подтверждённых ошибок
- Список рассылки: i2p-dev@lists.i2p-projekt.de для вопросов по разработке
Реалистичные ожидания имеют значение. I2P медленнее, чем clearnet (обычный интернет), по самой своей архитектуре: многохоповая зашифрованная передача через tunnel создаёт неизбежные задержки. Рабочий I2P router с загрузкой страниц за 30 секунд и скоростью торрентов 50 KB/sec — функционирует корректно, а не сломан. Пользователи, ожидающие скоростей clearnet, будут разочарованы вне зависимости от оптимизации конфигурации.
Заключение
Большинство проблем в I2P сводятся к трём категориям: недостаточное терпение во время bootstrap (начальная инициализация сети; требуется 10–15 минут), недостаточное выделение ресурсов (минимум 512 МБ ОЗУ и 256 КБ/с пропускной способности) или некорректно настроенный проброс портов. Понимание распределённой архитектуры I2P и ориентированного на анонимность дизайна помогает пользователям отличать ожидаемое поведение от реальных проблем.
Статус router “Firewalled”, хотя и не оптимален, не мешает использованию I2P - он лишь ограничивает вклад в сеть и немного снижает производительность. Новым пользователям следует ставить в приоритет стабильность, а не оптимизацию: запустите router и держите его запущенным непрерывно в течение нескольких дней, прежде чем менять продвинутые настройки, поскольку интеграция с сетью естественным образом улучшается по мере увеличения времени работы.
При устранении неполадок всегда сначала проверяйте базовые вещи: корректное системное время, достаточную пропускную способность, непрерывную работу router (узел I2P) и наличие 10+ активных пиров. Большинство проблем решается, если сперва заняться этими основами, а не пытаться править неочевидные параметры конфигурации. I2P вознаграждает терпение и непрерывную работу улучшением производительности по мере того, как router наращивает репутацию и оптимизирует выбор пиров в течение дней и недель времени работы.