I2p — это сеть со специализацией на анонимности внутрисетевых ресурсов, этим она отличается от сети tor, основной задачей которой являются не внутренние ресурсы, а построение безопасного доступа к интернету. Зная об этих двух особенностях, люди могут гораздо эффективнее работать в обеих сетях.
В i2p ты можешь заниматься множеством вещей: посещать и создавать сайты, форумы и торговые площадки, принимать почту, чатиться и скачивать торренты, и многое многое другое. Программа i2pd способна работать с большим числом программ и сервисов.
При этом стоит запомнить — программа помогает вам достичь анонимности, однако сама анонимность зависит от вас. От ваших действий, предпринятых в сети и за ее пределами, настроек используемого оборудования и рабочих программ. Данная инструкция поможет настроить i2pd и начать работать в сети.
Собрать i2pd под 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-regex-dev \
libboost-system-dev \
libboost-thread-dev \
libssl-dev
Установите пакеты для работы с проектами гит:
sudo apt-get install git
Установите cmake:
sudo apt-get install cmake
Скопируйте свежий образ из github (не забудьте поставить перед ссылкой https://):
git clone github.com/PurpleI2P/i2pd.git
Перейдите в папку:
cd i2pd/build
Начинаем сборку:
cmake -DCMAKE_BUILD_TYPE=Release
В случае успеха:
make
И наконец:
sudo make install
Программа окажется там же, в папке build (это файл i2pd). Вы можете перенести его куда вам угодно.
Запустите файл:
i2pd
Если по экрану побежали строчки, программа начала работать. Данное окно будет оставаться открытым до окончания сеанса работы с I2P. Вы можете открыть теперь новую вкладку для продолжения работы с терминалом.
Откройте любой браузер, который вы решили предназначить для работы с i2p. Моя рекомендация — Mozilla Firefox или любой другой gecko-браузер из-за гибкости рабочих настроек, однако вы можете использовать тот браузер, который нравится лично вам.
Наберите в браузере следующий адрес: 127.0.0.1:7070. По этому адресу вы найдете web-консоль со статистикой работы в сети.
В консоли вы увидите разные вещи, например адрес папки с рабочими файлами программы. В доступном релизе 2.3.0 разработчики решили что это будет путь следующего содержания: /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.i2pd/ Для дальнейших настроек зайдите в эту папку.
В этой папке нам понадобятся два файла. Если они еще не были созданы, пожалуйста, создайте их вручную. Первый файл — файл подписок. В нем содержатся адреса, по которым i2pd будет обновлять имеющийся у вас список сайтов с общесетевым.
Название файла: subscriptions.txt
Содержимое файла:
inr.i2p/export/alive-hosts.txt
stats.i2p/cgi-bin/newhosts.txt
i2p-projekt.i2p/hosts.txt
i2host.i2p/cgi-bin/i2hostetag
no.i2p/export/alive-hosts.txt
rus.i2p/hosts.txt
Второй файл, который нам понадобится, очень интересен — это файл тоннелей. I2PD представляет из себя виртуальный роутер, буквально, коробку, к которой можно подключиться через множество портов. Так мы можем настраивать наши программы и сервисы на компьютере на работу с программами и сервисами сети.
Каждый тоннель придерживается одной и той же структуры.
[IRC] — это наше название, мы сами решаем, что тут будет написано.
type=client — этим мы сообщаем, будем ли мы подключаться к сервису внутри сети или наоборот, сами являемся сервисом (и тогда значение будет не client, а server).
port=666 — имя порта на роутере. Обратите внимание, что порты назначаются вами же как и название, и могут быть какими-нибудь другими, вы можете попробовать их изменить.
destination=irc.echelon.i2p — имя сервиса, с которым мы собираемся взаимодействовать.
keys=irc.dat — адрес с ключами, которые важны нам для доверительной работы с избранным сервисом. Иногда вы можете использовать один и тот же файл ключей, к примеру, для работы с почтым сервисом postman.i2p (вы увидите ниже как это сделано).
Название файла:
tunnels.cfg
Содержимое (в качестве примера мы настроили IRC-чат на одном из серверов сети, а также прием и отправку почты на одном из основных почтовых ресурсов):
[IRC]
type=client
port=666
destination=irc.echelon.i2p
keys=irc.dat
[SMTP]
type=client
port=515
destination=smtp.postman.i2p
keys=mail.dat
[POP3]
type=client
port=616
destination=pop.postman.i2p
keys=mail.dat
Вы можете также скачать готовыми оба файла в архиве по адресу rghost.net/8QxX5gTf2 (ссылка будет рабочей в течение 90 дней начиная с текущего момента). Их достаточно распаковать в найденную нами выше директорию. Удостоверьтесь, что файлы имеют то же содержимое, что и указанное выше, открыв их любым текстовым редактором или процессором.
Сохраните и настройте оба файла. Обратите внимание: после изменения этих файлов вам понадобится перезапустить i2pd: пока этого не сделать, изменения не достигнут своей силы!
Вернитесь к окну браузера. Поменяйте прокси на http 127.0.0.1 и порт 4446, что очень просто сделать это пользуясь инструкцией для любого браузера (http://ru.wikihow.com/изменить-настройки-прокси-сервера), и смело посещайте сайты, мы указали два поисковых ресурса сети: epsilon.i2p и search.i2p.
# 1 запустившись в первый раз, i2pd потратит некоторое время на знакомство с разнообразными узлами сети (вполне возможно, несколько часов), прежде чем соберет достаточно данных для работы сайтов (в соответствии с subscriptions.txt).
# 2 для обеспечения безопасности i2p постоянно прокладывает разные тоннели от вас и до нужного вам ресурса. Для построения тоннелей требуется некоторое время, что может вызывать задержки при открытии сайтов. Поэтому если сайт не открывается, обновите страницу несколько раз.
# 3 некоторые сайты держат такие же люди как и вы. Будьте снисходительнее если ресурс не открывается! Вполне возможно, что открываемый сайт находится не на мощном сервере, а на точно таком же компьютере, что и ваш, и, возможно, не всегда включен!
Больше инструкций по работе с сетью вы можете найти здесь: i2pd.readthedocs.org/en/latest.
Похоже, что все готово. Пока людей, использующих сеть, не очень много, поэтому не очень много и ресурсов. Сеть в первую очередь строится теми, кто бесплатно хочет сделать жизнь лучше. Разработчики i2pd действуют также совершенно бесплатно, среди них много людей, говорящих по-русски, с ними вы можете пообщаться на канале #i2pd-ru через вашу IRC-программу (мы уже прокидывали для этого с вами порт ранее). Они делают все чтобы вам было удобнее пользоваться i2p и надеются, что пользователи так же помогут сделать сеть интереснее и лучше. С вами i2p станет насыщеннее, мы в этом уверены. Удачи вам в использовании i2p!
P.S. Если вам нужен билд для виндоуса, подробная инструкция здесь: habrahabr.ru/post/275647
Комментарии (69)
Darka
21.01.2016 21:16Так и не понял сколько оно памяти занимает? На OpenWRT каком-нибудь его запустить реально или хотя-бы на малине?
Arula
21.01.2016 21:32И на малине, и на OpenWRT можно. Но оперативной памяти должно быть не меньше 128Мб.
orignal
21.01.2016 21:54Порядка 30-40 мегабайт. На малине (первой) у меня работает отлично.
Под OpenWRT тоже собирали и вроде работало.RussianNeuroMancer
25.01.2016 21:23+1Можно ли ожидать пакета в репозитории OpenWRT? (Как с Tor сейчас.)
orignal
25.01.2016 22:12+1Можно, если найдется мейнтенер для него.
RussianNeuroMancer
26.01.2016 13:51+1Есть ли среди разработчиков кто-нибудь, кто мог бы этим заняться?
gxcreator
22.01.2016 12:16Собирал предыдущие версии под TL-MR3220V2 (Atheros AR9331@400MHz 32MiB RAM), со свопом работает нормально и стабильно
BelBES
21.01.2016 21:54+9<оффтоп> КДПВ напомнила оформление статей в журнале хакер в его лучшие годы </оффтоп>
engine9
22.01.2016 13:31+1Картинки (особенно в посте про винду) отдают какой-то дешевой заманухой: «давай, парень, скушай таблеточку, брат мой жив, зависимости никакой».
IRainman
22.01.2016 13:51Ну, я бы с радостью попробовал нативную реализацию ибо на жабе i2p слишком уж жирный получился:
WARN [impleAppMain] .tunnel.BloomFilterIVValidator: Configured for 4,00MBps share bandwidth but only 368,00MB available memory. Recommend increasing wrapper.java.maxmemory in c:\Program Files\i2p\wrapper.config to at least 422 (MB) if the actual share bandwidth exceeds 4,00MBps.
Т.е. для хоть сколько нибудь приличных скоростей он хочет несколько сотен МБ памяти.
P.S. Как с реализацией в i2pd будет покажет время. До сравнительных тестов i2pd vs i2p работающих параллельно на разных портах с одними и теми же настройками на одном и том же хосте у себя точно трогать ничего не буду ибо не хочется ломать работающую реализацию.
P.P.S. но я всё равно не понимаю, что с самим I2P не так. В настройках указано 4096 на входящую и исходящую скорость и доля транзита 100%, но скорости в пиках через хост десятки кБ/c, не больше.
GamePad64
21.01.2016 23:08+4make install
Ну зачем же так? Checkinstall же есть.monah_tuk
22.01.2016 07:03PPA: launchpad.net/~i2p.packages/+archive/ubuntu/i2p
конкретно: launchpad.net/~i2p.packages/+archive/ubuntu/i2p/+sourcepub/5874450/+listing-archive-extra
можно брать спеки и собирать под себя.
hungry_ewok
22.01.2016 00:32Кто-нибудь собирал его под Centos6?
cmake -DCMAKE_BUILD_TYPE=Release -DBoost_NO_BOOST_CMAKE=BOOL:ON
выдает ошибку error: 'nullptr' was not declared in this scopemonah_tuk
22.01.2016 07:10Выше спросили про версию Gcc, nullptr, это фича C++11, версия GCC, похоже, 4.4.7 (https://www.centos.org/forums/viewtopic.php?t=6319), она ещё не поддерживает данный функционал. Скорее всего вам поможет: superuser.com/questions/381160/how-to-install-gcc-4-7-x-4-8-x-on-centos
MrFrizzy
22.01.2016 10:30+1Спасибо,
Прекрасно, что проект так развился с тех пор, как про него первый раз писали на хабре пару лет назад.
А как дела с аудитом безопасности? Оригинальный i2p вроде прямо предупреждает, что вполне могут быть дыры, но его вроде бы проверяли достаточно серьезные люди.
TheRaven
22.01.2016 10:33Сейчас у меня есть i2p роутер в контейнере, всё вместе потребляет 140 Мбайт памяти. Мне можно оставить всё как есть или ваш проект несет какие-то дополнительные бонусы?
Meklon
22.01.2016 12:36+1Меня больше нагрузка на процессор интересует. Жрет ощутимо. Или это уже не оптимизируется?
IRainman
22.01.2016 13:41Для снижения нагрузки на процессор в java реализации в wrapper.config надо включить вот это:
# Uncomment this for better performance. # If it doesn't work, server mode is not available in your JVM. # This may not be required if your machine is already "server-class". # See http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html wrapper.java.additional.7=-server
Ещё, наверняка, поможет отключение floodfill если нагрузка на процессор критична. На странице
127.0.0.1:7657/configadvanced
Настройка Floodfill
выбрать «Отключить» и нажать «Сохранить изменения»
P.S. где у вас лежит wrapper.config не знаю, у меня i2p под windows работает и с умолчательной установкой файл лежит в%PROGRAMFILES%\i2p\wrapper.config
Meklon
22.01.2016 14:16Спасибо, посмотрю. Floodfill включал, чтобы узел был более известен. Думал, что увеличит связность
IRainman
22.01.2016 18:19Пожалуйста, вот ещё вспомнил что на странице
127.0.0.1:7657/graphs
доступна статистика по потребляемой памяти очень может быть что нагрузка на процессор вызвана не столько I2P сколько самой Java из-за сборки мусора. У себя увеличил максимальное значение потребляемой памяти, в т.ч. и для поддержания более высокой скорости (судя по логам), по умолчанию стояло 128, поставил 384:
# Initial Java Heap Size (in MB) #wrapper.java.initmemory=4 # Maximum Java Heap Size (in MB) # The JVM's default is 64MB, and I2P can work fine in that, but to handle # lots of I2PSnark activity in the same JVM, increasing the default max heap # size should help. Feel free to reduce this if not using I2PSnark in the jvm # High-bandwidth routers may need to increase to 256 or more. # # WARNING - for any changes to take effect, you must completely # stop the router and the wrapper. Clicking 'Restart' on your # router console will NOT reread this file! You must # click "Shutdown", wait 11 minutes, then start i2p. # wrapper.java.maxmemory=384
Это настройка всё в том же wrapper.config.
Arula
23.01.2016 17:18Это все из-за java. В i2pd такого нет уже просто потому, что реализация на C++. i2pd работает быстрее и стабильней, чем оригинальная java-реализация.
Arula
23.01.2016 17:16Несёт. Говорю по опыту, i2pd работает быстрее, но, самое главное, стабильнее. Не вылетает непонятно из-за чего и не обрывается на ровном месте.
TheRaven
24.01.2016 02:07Ммм… ну вылетов и обрывов я не наблюдал, может по тому что виртуалка раз в неделю рестартится для бекапа.
По нагрузке сейчас как-то так:
КартинкаArula
24.01.2016 10:43+1Да, обрывы на достаточно сильном компе не будут так часто наблюдаться, однако на более слабых они есть и постоянно.
А i2pd автоматически использует максимально возможную скорость.
Нет, интерфейс очень приятный для глаз, особенно, после официального.
Web-консоль i2pdTheRaven
25.01.2016 00:32+1Запилите мне туда девочку из топика про винду и я готов пробовать =)
А вообще интерфейс действительно приятный, да.Evengard
27.01.2016 16:57+1Кстати, кто эта девочка?
TheRaven
27.01.2016 21:17+1Гугл подсказывает, что это Нептун из Choujigen Game Neptune The Animation.
А вообще я серьезно, люблю когда у проекта есть маскот.
Meklon
22.01.2016 13:12И еще была раздражающая фигня со связностью. Когда узел работает пару месяцев, а некоторые ресурсы доступны через раз.
IRainman
22.01.2016 13:43Это, боюсь, либо by design, либо какие то баги реализации, на этот момент все жалуются, но решения «чтобы наверняка» мне так и не попадалось.
Meklon
22.01.2016 14:15Вот это и смущает. Вроде и поток максимальный через себя пропускал, значит все меня знать должны были уже. Видимо еще ковырять долго протоколы.
IRainman
22.01.2016 17:55Можно ещё попробовать вот в этот сайт адресов проблемных ресурсов накидать, через I2P он тоже доступен без xyz. Возможно, что проблема не у вас, а сами ресурсы просто лежат. Ну и список подписок побольше ибо умолчательный обновляется раз в вечность, у меня, например, так:
Список подписокhttp://bl.i2p/hosts2.txt http://cipherspace.i2p/addressbook.txt http://dream.i2p/hosts.txt http://hosts.i2p/ http://i2host.i2p/cgi-bin/i2hostetag http://i2p-projekt.i2p/hosts.txt http://inr.i2p/export/alive-hosts.txt http://no.i2p/export/alive-hosts.txt http://rus.i2p/hosts.txt http://stats.i2p/cgi-bin/newhosts.txt http://tino.i2p/hosts.txt http://trevorreznik.i2p/hosts.txt
Keroro
22.01.2016 14:54+1Что-то мне эта КДПВ напомнила…
Заголовок спойлераTimsTims
22.01.2016 14:55-поэтому не очень много и ресурсов.
Ждём гугл для i2p :) или тот самый «Портал со всеми сайтами в сети»
Meklon
24.01.2016 13:47+1Никто это ещё в ppa не запихнул, чтобы руками не пересобирать?
monah_tuk
26.01.2016 15:25+1есть: habrahabr.ru/post/275643/#comment_8747609, но не новое
плюс дебки: i2pd.website/releases/2.3.0
Andrii_Z
24.01.2016 23:13Как разрешить доступ не только из localhost?
orignal
25.01.2016 00:23Что именно надо? Для тоннелей в поле address написать 0.0.0.0.
Для HTTP прокси — параметр httpproxyaddress и так далееMeklon
26.01.2016 14:46+1Я не могу получить доступ к веб-интерфейсу извне. Развернул i2pd на отдельной виртуальной машине как и обычный i2p ранее. Где в конфигах прописать разрешение на доступ отовсюду 0.0.0.0 и порт? Мне грубо говоря, надо зайти на 192.168.100.10 и увидеть там интерфейс управления.
m0sk1t
29.01.2016 15:38Поясните, пожалуйста, пару вопросов:
1. Пока i2pd не опросит всю сеть я подключиться к search.i2p не смогу?
2. search.i2p или http:// search.i2p?
3. А мы же не создали клиентский туннель, как мы будем коннектиться по http?
В общем и целом хочется больше информации о принципах работы i2pd… Буду благодарен за ссылки)m0sk1t
29.01.2016 17:03и кстати порт у меня заработал 4444 а не 4446 который предлагается использовать в статье…
orignal
29.01.2016 17:40На 4444 вчера только сменили.
Подключиться можно будет как только адресную книгу скачает, а это когда первые тоннели построит.
search.i2p
Evengard
Вопрос — насколько он полно поддерживает i2p для конечного пользователя? Есть ли хотя бы сёрфинг по i2p сайтам, i2p-торрент и тому подобное, что имеется в java-версии?
Arula
Поддерживает все, что есть в i2p. Просто является более быстрым и, самое главное, более стабильным.
orignal
Поддерживает серфинг, скрытые севрисы, торренты через BOB.
Подробно я описывал здесь habrahabr.ru/post/240815
Evengard
Не подскажете, где найти такой headless торрент клиент?
Evengard
Желательно с Web-интерфейсом. Видел вроде i2ptransmission, но я не знаю насколько он актуален.
orignal
У эшелона (echelon.i2p) точно есть.