i2pd¶
i2pd (I2P Daemon) это полнофункциональная реализация I2P клиента на языке C++.
Установка¶
Самый простой способ установить i2pd это использование бинарных файлов. Инструкции по сборке из исходников для вашей ОС смотрите в документации.
Использование¶
Смотрите в документацию и документированный конфигурационный файл.
Содержание:¶
Сборка на Unix системах¶
Этот документ описывает сборку на системах:
- Debian/Ubuntu (содержит инструкцию для сборки пакетов)
- Fedora/Centos
- MAC OS X
- FreeBSD
Убедитесь, что все зависимости в вашей системе удовлетворены.
Если это так, то приступаем к сборке i2pd. Клонируем репозиторий и собираем:
git clone https://github.com/PurpleI2P/i2pd.git
cd i2pd/build
cmake -DCMAKE_BUILD_TYPE=Release # есть больше опций, смотрите раздел "Опции CMake"
make # можно добавить опцию VERBOSE=1 для отладки
После сборки i2pd можно установить в систему следующей командой:
make install
Вы так же можете использовать упрощенный вариант сборки:
git clone https://github.com/PurpleI2P/i2pd.git
cd i2pd
make
Debian/Ubuntu¶
Устанавливаем компилятор и прочие программы для сборки:
sudo apt-get install build-essential
Устанавливаем библиотеки разработчиков для сборки:
sudo apt-get install \
libboost-chrono-dev \
libboost-date-time-dev \
libboost-filesystem-dev \
libboost-program-options-dev \
libboost-system-dev \
libboost-thread-dev \
libssl-dev
Если нужна поддержка UPnP (не забудьте потом запустить CMake с параметром WITH_UPNP=ON
):
sudo apt-get install libminiupnpc-dev
Вы можете собрать пакет .deb следующим образом:
sudo apt-get install fakeroot devscripts
cd i2pd
debuild --no-tgz-check -b
Fedora/Centos¶
Устанавливаем компилятор и прочие программы для сборки:
sudo yum install make cmake gcc gcc-c++
В новых версиях Fedora используется DNF вместо YUM by по-умолчанию, можете использовать его
В Centos 7 есть только CMake 2.8.11 в официальных репозиториях, это слишком старая версия для i2pd. Нужен CMake версии 2.8.12 или новее.
Вы можете собрать CMake для Centos вручную (ВНИМАНИЕ, там много зависимостей для сборки):
wget https://kojipkgs.fedoraproject.org/packages/cmake/2.8.12/3.fc21/src/cmake-2.8.12-3.fc21.src.rpm yum-builddep cmake-2.8.12-3.fc21.src.rpm rpmbuild --rebuild cmake-2.8.12-3.fc21.src.rpm yum install ~/rpmbuild/RPMS/x86_64/cmake-2.8.12-3.el7.centos.x86_64.rpm
Устанавливаем библиотеки разработчиков для сборки:
sudo yum install boost-devel openssl-devel
Если нужна поддержка UPnP (не забудьте потом запустить CMake с параметром WITH_UPNP=ON
):
sudo yum install miniupnpc-devel
MAC OS X¶
Необходим homebrew.
Устанавливаем библиотеки разработчиков для сборки:
brew install libressl boost
Собираем:
make HOMEBREW=1
FreeBSD¶
Для 10.X используйте clang. Вам так же понабятся порты boost и openssl. Запустите gmake, он прочитает Makefile.bsd и сделает необходимые изменения.
Ветка 9.X использует gcc v4.2 который не поддерживает необходимый стандарт c++11.
Необходимые порты:
devel/cmake
devel/boost-libs
lang/gcc47
(или более новые версии)
Чтобы использовать более новый компилятор, установите следующие переменные (замените «47» своей версией gcc):
export CC=/usr/local/bin/gcc47
export CXX=/usr/local/bin/g++47
Опции CMake¶
Доступные опции CMake (подробности смотрите в man 1 cmake
):
CMAKE_BUILD_TYPE
профиль сборки, отладочный или релиз (Debug/Release)WITH_BINARY
сборка самого i2pdWITH_LIBRARY
сборка библиотеки libi2pdWITH_STATIC
сборка статических версий библиотеки и самого i2pdWITH_UPNP
сборка с поддержкой UPnP (нужна библиотека libupnp)WITH_AESNI
сборка с поддержкой AES-NI (ON/OFF)WITH_HARDENING
включить Hardending (ON/OFF) (только с gcc)WITH_PCH
использовать pre-compiled header (экспериментально, ускоряет процесс сборки)
Так же у CMake есть -L флаг, который показывает список текущих установленных опций:
cmake -L
Сборка для Android¶
Существуют 2 версии: с использованием QT и без него
Необходимые пакеты¶
Требуются Android SDK, NDK и QT с поддержкой андроида (для QT).
- SDK (выбрать command line tools only)
- NDK
- QT(только для QT). Выбрать версию для андроида для вашей платформы. Например QT 5.6 под линукс будет этот файл
Также потребуется Java JDK и Ant.
QT-Creator (только для QT)¶
Запустить QT-creator, который должен быть установлен вместе с QT.Идти в Settings/Android и указать пути к SDK and NDK. Если все сделано правильно то должно появиться:Android for armeabi-v7a (gcc, qt) и Android for x86 (gcc, qt).
Библиотеки¶
Следующие собранные библиотеки следует взять и репозитария PurpleI2P.
git clone https://github.com/PurpleI2P/Boost-for-Android-Prebuilt.git
git clone https://github.com/PurpleI2P/OpenSSL-for-Android-Prebuilt.git
git clone https://github.com/PurpleI2P/MiniUPnP-for-Android-Prebuilt.git
git clone https://github.com/PurpleI2P/android-ifaddrs.git
Сборка с QT¶
- Открыть qt/i2pd_qt/i2pd_qt.pro в QT-creator
- Поменять строчку MAIN_PATH = /path/to/libraries на директорию где лежать зависимости из предыдущего пункта
- Выбрать проект для целевой платформы (как правило armeabi-v7a) и собрать
- .apk файл появится в android-build/bin
Сборка без QT¶
- Поменять строку I2PD_LIBS_PATH в android/jni/Application.mk на директорию с зависимостями
- Запустить команду „ndk-build -j4“ из директории android
- Поправить файл „local.properties“. Строчки „sdk.dir=<путь к SDK>“ и „ndk.dir=<путь к NDK>“
- Run „ant clean debug“
Релизный .apk¶
Релизный .apk следует подписать своей подписью для чего требуется Java keystore file(.jks). Либо взять уже существующий, либо сделать новый с помощью keytool либо сконвертировать какой нибудь из своих сертификатов. Например i2pd подписан этим сертификатом.Создать файл „ant.properties“key.store=“путь к keystore file“key.alias=“alias name“key.store.password=“keystore password“key.alias.password=“alias password“Запустить „ant clean release“
Примеры использования¶
i2pd может быть использован для:
и для много чего еще.
Посещение и создание веб-сайтов¶
Посещение анонимных веб-сайтов¶
Чтобы посещать анонимные веб-сайты внутри Невидимого Интернета, настройте свой веб-браузер на использование HTTP прокси 127.0.0.1:4444 (включено по-умолчанию в i2pd).
В Firefox: Настройки -> Дополнительные -> Сеть -> Соединение -> Настроить -> выберите Ручная настройка сервиса прокси, введите HTTP прокси 127.0.0.1, Порт 4444.
В Chromium: запустите chromium с ключом
chromium --proxy-server="http://127.0.0.1:4444"
Если вы хотите остаться анонимным при посещении веб-сайтов, вам необходимо так же настроить свой веб-браузер для защиты от деанонимизации. Как именно это делается можно найти в интернете, например здесь.
Большой список сайтов Невидимого Интернета на сайте identiguy.i2p.
Создание анонимных веб-сайтов¶
Если вы хотите запустить свой сайт в Невидимом Интернете, следуйте данной инструкции:
Запустите веб-сервер и узнайте, какой хост:порт он использует (например, 127.0.0.1:8080).
Настройте i2pd для создания серверного HTTP туннеля. В файл ~/.i2pd/tunnels.conf добавьте:
[anon-website] type = http host = 127.0.0.1 port = 8080 keys = anon-website.dat
Перезапустите i2pd.
Найдите b32 destination вашего вебсайта.
Зайдите в веб-консоль -> страница I2P tunnels. Ищите Sever tunnels и увидете адрес <длинная строка>.b32.i2p рядом с anon-website.
Теперь веб-сайт доступен в Невидимом Интернете по этому адресу.
(Опционально) Зарегистрируйте короткий и запоминающийся .i2p домен на inr.i2p.
Использование и создание чат-серверов¶
Запуск анонимного IRC сервера¶
Запустите свой IRC сервер и узнайте, какой хост:порт он использует (например, 127.0.0.1:5555).
Для малых приватных IRC серверов вы можете использовать miniircd, для больших публичных UnreadIRCd.
Настройте i2pd для создания серверного IRC туннеля.
В самом простом случае, если ваш сервер не поддерживает WebIRC, добавьте следующее в ~/.i2pd/tunnels.conf:
[anon-chatserver] type = irc host = 127.0.0.1 port = 5555 keys = chatserver-key.dat
И этого достаточно.
В случае, если ваш IRC сервер поддерживает WebIRC, например, это UnrealIRCd, добавьте следущее в конфиг UnrealIRCd:
webirc { mask 127.0.0.1; password your_password; };
Также измените строку:
modes-on-connect "+ixw";
на
modes-on-connect "+iw";
И добавьте это в ~/.i2pd/tunnels.conf:
[anon-chatserver] type = irc host = 127.0.0.1 port = 5555 keys = chatserver-key.dat webircpassword = your_password
Перезапустите i2pd.
Найдите b32 destination вашего анонимного IRC сервера.
Зайдите в веб-консоль -> страница I2P tunnels. Ищите Sever tunnels и увидете адрес <длинная строка>.b32.i2p рядом с anon-chatserver.
Пользователи будут использовать этот адрес для анонимного подключения к вашему серверу.
Подключение к анонимному IRC серверу¶
Чтобы подключиться к IRC серверу по адресу walker.i2p, добавьте следующее в ~/.i2pd/tunnels.conf:
[IRC2]
type = client
address = 127.0.0.1
port = 6669
destination = walker.i2p
#keys = walker-keys.dat
Перезапустите i2pd, после чего подключайтесь к irc://127.0.0.1:6669 в вашем IRC клиенте.
Файлообмен¶
Вы можете качать и раздавать торренты клиентом Transmission-I2P.
Другие торрент-клиенты Robert и Vuze.
Robert использует протокол BOB, i2pd должен быть запущен с настройкой –bob.enabled=true.
Vuze использует протокол I2CP, i2pd должен быть запущен с настройкой –i2cp.enabled=true.
Используйте трекер postman.