Reseed-хосты являются критически важной инфраструктурой для сети I2P, предоставляя новым router’ам начальную группу узлов в процессе bootstrap’а. Это руководство проведет вас через настройку и запуск собственного reseed-сервера.
Что такое I2P Reseed Server?
Reseed-сервер I2P помогает интегрировать новые роутеры в сеть I2P следующим образом:
- Обеспечение первоначального обнаружения узлов: Новые роутеры получают начальный набор сетевых узлов для подключения
- Восстановление bootstrap: Помощь роутерам, испытывающим трудности с поддержанием соединений
- Безопасное распространение: Процесс reseeding шифруется и цифровым образом подписывается для обеспечения безопасности сети
Когда новый I2P router запускается впервые (или потерял все свои пиринговые соединения), он обращается к reseed-серверам для загрузки начального набора информации о роутерах. Это позволяет новому router начать построение собственной netDb (базы данных сети) и установление tunnel.
Предварительные требования
Перед началом работы вам понадобится:
- Linux-сервер (рекомендуется Debian/Ubuntu) с правами root
- Доменное имя, указывающее на ваш сервер
- Минимум 1 ГБ оперативной памяти и 10 ГБ дискового пространства
- Работающий I2P router на сервере для заполнения network database
- Базовые знания системного администрирования Linux
Подготовка сервера
Step 1: Update System and Install Dependencies
Сначала обновите вашу систему и установите необходимые пакеты:
sudo apt update && sudo apt upgrade -y && sudo apt-get install golang-go git make docker.io docker-compose -y
Это устанавливает: - golang-go: среда выполнения языка программирования Go - git: система контроля версий - make: инструмент автоматизации сборки - docker.io & docker-compose: контейнерная платформа для запуска Nginx Proxy Manager

Step 2: Clone and Build Reseed Tools
Клонируйте репозиторий reseed-tools и соберите приложение:
cd /home/i2p
git clone https://i2pgit.org/idk/reseed-tools
cd reseed-tools
make build
sudo make install
Пакет reseed-tools предоставляет основной функционал для запуска reseed-сервера. Он обрабатывает: - Сбор информации о router из вашей локальной базы данных сети - Упаковку информации router в подписанные SU3-файлы - Предоставление этих файлов через HTTPS

Step 3: Generate SSL Certificate
Сгенерируйте SSL-сертификат и приватный ключ вашего reseed-сервера:
su - i2p -c 'reseed-tools reseed --signer=admin@stormycloud.org --netdb=/home/i2p/.i2p/netDb --port=8443 --ip=127.0.0.1 --trustProxy'
Важные параметры: - --signer: Ваш адрес электронной почты (замените admin@stormycloud.org на свой собственный) - --netdb: Путь к сетевой базе данных вашего I2P router - --port: Внутренний порт (рекомендуется 8443) - --ip: Привязка к localhost (мы будем использовать reverse proxy для публичного доступа) - --trustProxy: Доверять заголовкам X-Forwarded-For от reverse proxy
Команда сгенерирует: - Приватный ключ для подписи SU3-файлов - SSL-сертификат для безопасных HTTPS-соединений

Шаг 1: Обновление системы и установка зависимостей
Критически важно: Создайте безопасную резервную копию сгенерированных ключей, расположенных в /home/i2p/.reseed/:
sudo tar -czf reseed-keys-backup.tar.gz /home/i2p/.reseed/
Храните эту резервную копию в безопасном зашифрованном месте с ограниченным доступом. Эти ключи необходимы для работы вашего reseed-сервера и должны быть тщательно защищены.
Configuring the Service
Шаг 2: Клонирование и сборка инструментов Reseed
Создайте systemd service для автоматического запуска reseed-сервера:
sudo tee /etc/systemd/system/reseed.service <<EOF
[Unit]
Description=Reseed Service
After=network.target
[Service]
User=i2p
WorkingDirectory=/home/i2p
ExecStart=/bin/bash -c 'reseed-tools reseed --signer=admin@stormycloud.org --netdb=/home/i2p/.i2p/netDb --port=8443 --ip=127.0.0.1 --trustProxy'
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
Не забудьте заменить admin@stormycloud.org на ваш собственный адрес электронной почты.
Теперь включите и запустите службу:
sudo systemctl daemon-reload
sudo systemctl enable reseed
sudo systemctl start reseed
Проверьте, что сервис запущен:
sudo systemctl status reseed

Шаг 3: Генерация SSL-сертификата
Для оптимальной производительности вы можете периодически перезапускать службу reseed для обновления информации о роутерах:
sudo crontab -e
Добавьте эту строку для перезапуска сервиса каждые 3 часа:
0 */3 * * * systemctl restart reseed
Setting Up Reverse Proxy
Reseed-сервер работает на localhost:8443 и требует обратный прокси-сервер для обработки публичного HTTPS-трафика. Мы рекомендуем Nginx Proxy Manager за простоту использования.
Шаг 4: Резервное копирование ключей
Развертывание Nginx Proxy Manager с использованием Docker:
docker run -d \
--name nginx-proxy-manager \
-p 80:80 \
-p 81:81 \
-p 443:443 \
-v $(pwd)/data:/data \
-v $(pwd)/letsencrypt:/etc/letsencrypt \
--restart unless-stopped \
jc21/nginx-proxy-manager:latest
Это открывает: - Порт 80: HTTP-трафик - Порт 81: Интерфейс администратора - Порт 443: HTTPS-трафик
Configure Proxy Manager
Откройте интерфейс администратора по адресу
http://your-server-ip:81Войдите, используя учетные данные по умолчанию:
- Email: admin@example.com
- Пароль: changeme
Важно: Измените эти учетные данные сразу после первого входа в систему!

- Перейдите в раздел Proxy Hosts и нажмите Add Proxy Host

- Настройте proxy host:
- Domain Name: Ваш домен reseed-сервера (например,
reseed.example.com) - Scheme:
https - Forward Hostname / IP:
127.0.0.1 - Forward Port:
8443 - Включите Cache Assets
- Включите Block Common Exploits
- Включите Websockets Support
- Domain Name: Ваш домен reseed-сервера (например,

- На вкладке SSL:
- Выберите Request a new SSL Certificate (Let’s Encrypt)
- Включите Force SSL
- Включите HTTP/2 Support
- Примите условия использования Let’s Encrypt

- Нажмите Сохранить
Ваш reseed сервер теперь должен быть доступен по адресу https://reseed.example.com

Registering Your Reseed Server
После того как ваш reseed-сервер заработает, свяжитесь с разработчиками I2P, чтобы добавить его в официальный список reseed-серверов.
Шаг 5: Создание службы Systemd
Напишите на email zzz (ведущему разработчику I2P) следующую информацию:
- Электронная почта I2P: zzz@mail.i2p
- Электронная почта в обычной сети: zzz@i2pmail.org
Шаг 6: Опционально - Настройка периодических перезапусков
Укажите в своем письме:
Verification
Разработчики I2P проверят, что ваш reseed-сервер: - Правильно настроен и раздаёт информацию о роутерах - Использует действительные SSL-сертификаты - Предоставляет корректно подписанные SU3-файлы - Доступен и отвечает на запросы
- URL сервера reseed: Полный HTTPS URL (например,
https://reseed.example.com) - Публичный reseed сертификат: Расположен в
/home/i2p/.reseed/(приложите файл.crt) - Контактный email: Предпочтительный способ связи для уведомлений об обслуживании сервера
- Местоположение сервера: Опционально, но полезно (страна/регион)
- Ожидаемое время работы: Ваше обязательство по поддержанию работы сервера
Установка Nginx Proxy Manager
После одобрения ваш reseed-сервер будет добавлен в список, распространяемый вместе с I2P-роутерами, помогая новым пользователям присоединиться к сети!
Мониторинг вашего reseed-сервиса:
Monitoring and Maintenance
Настройка Proxy Manager
Следите за системными ресурсами:
sudo systemctl status reseed
sudo journalctl -u reseed -f
Update Reseed Tools
Периодически обновляйте reseed-tools, чтобы получать последние улучшения:
htop
df -h
Контактная информация
Если используется Let’s Encrypt через Nginx Proxy Manager, сертификаты будут обновляться автоматически. Проверьте, что обновление работает:
cd /home/i2p/reseed-tools
git pull
make build
sudo make install
sudo systemctl restart reseed
Необходимая информация
Проверьте логи на наличие ошибок:
docker logs nginx-proxy-manager | grep -i certificate
Настройка сервиса
Проверка
Распространённые проблемы: - I2P router не запущен или база данных сети пуста - Порт 8443 уже используется - Проблемы с правами доступа к директории /home/i2p/.reseed/
sudo journalctl -u reseed -n 50
Убедитесь, что ваш I2P router запущен и заполнил свою netDb:
SSL Certificate Errors
Вы должны увидеть множество файлов .dat. Если папка пуста, подождите, пока ваш I2P router обнаружит peers.
ls -lh /home/i2p/.i2p/netDb/
Проверьте, что ваши сертификаты действительны:
Проверка состояния сервиса
Проверьте: - DNS-записи правильно указывают на ваш сервер - Файрвол разрешает порты 80 и 443 - Nginx Proxy Manager запущен: docker ps
openssl s_client -connect reseed.example.com:443 -servername reseed.example.com
Что такое I2P?
Запуская reseed-сервер, вы предоставляете критически важную инфраструктуру для сети I2P. Спасибо за ваш вклад в более приватный и децентрализованный интернет!
Security Considerations
- Храните приватные ключи в безопасности: Никогда не передавайте и не раскрывайте содержимое
/home/i2p/.reseed/ - Регулярные обновления: Поддерживайте системные пакеты, Docker и reseed-tools в актуальном состоянии
- Мониторинг логов: Следите за подозрительными паттернами доступа
- Ограничение частоты запросов: Рассмотрите возможность внедрения rate limiting для предотвращения злоупотреблений
- Правила файрвола: Открывайте только необходимые порты (80, 443, 81 для администрирования)
- Интерфейс администратора: Ограничьте доступ к административному интерфейсу Nginx Proxy Manager (порт 81) только доверенными IP-адресами
Contributing to the Network
Для вопросов или помощи обращайтесь в сообщество I2P: - Форум: i2pforum.net - IRC/Reddit: #i2p в различных сетях - Разработка: i2pgit.org
I2P - это анонимная оверлейная сеть, которая позволяет приложениям безопасно и анонимно отправлять друг другу сообщения. I2P обеспечивает конфиденциальность, анонимность и защиту от цензуры.
I2P разработан для предоставления анонимных сервисов внутри сети (веб-сайты, чаты, файлообмен), в то время как другие сети могут больше ориентироваться на анонимный выход в открытый интернет. I2P использует технологию garlic encryption для защиты сообщений.
I2P предоставляет сильную анонимность при правильном использовании. Однако никакая система не является полностью безопасной. Важно следовать рекомендациям по безопасности и понимать ограничения системы.