Как поднять свой i2p-сайт(eepsite) на VDS(VPS) под Ubuntu(LAMP). Краткий инструктаж для новичков

в 12:23, , рубрики: apache2, eepsite, i2p, i2p-сайт, ubuntu server, Разработка веб-сайтов, метки: ,

Предыстория: намедни написалась книжка относительно нового государственного строя (Государство-домен), который ждет нас в близком будущем. А поскольку Роскомнадзор реагирует на подобные вещи неадекватно – решил завести под свою писанину сайт в приватной сети i2p. По ходу создания пришлось решать некоторые технические вопросы, которые я ниже и рассмотрю, пытаясь сэкономить ваше время, заодно и шпаргалка мне будет.

Итак, имеется удаленный VPS под Ubuntu, и разместить сайт нужно именно на нем. Ибо, можно, конечно сделать его у себя на ноуте, но когда ноут выключен – сайт ведь недоступен (лично меня это неизменно раздражает в .i2p и .onion).

Далее я предполагаю, что ваш LAMP уже настроен, и нормально отдает контент в обычный интернет. Т.е. у вас на нем уже крутится пара-тройка обычных (не-i2p) сайтов.

Сначала ставим i2p на Ubuntu:

sudo apt-add-repository ppa:i2p-maintainers/i2p
sudo apt-get update
sudo apt-get install i2p

Конфигурируем i2p-роутер как постоянно работающий демон:

sudo dpkg-reconfigure -plow i2p

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

По завершении конфигурирования i2p-демон запустится самостоятельно.

Теперь нам нужно, чтобы панель с веб-интерфейсом i2p-роутера была доступна удаленно. Для этого открываем файл

/var/lib/i2p/i2p-config/clients.config

И меняем в нем

clientApp.0.args=7657 ::1,127.0.0.1 ./webapps/

на

clientApp.0.args=7657 80.80.80.80 ./webapps/

Где вместо

80.80.80.80

Ставите внешний IP вашего VPS. Есть еще вариант (от разработчиков i2p), где вы можете заменить на:

clientApp.0.args=7657 0.0.0.0 ./webapps/

но я его не пробовал.

Теперь вам доступен веб-интерфейс для управления вашим удаленным i2p-роутером.

ПЕРВЫМ ДЕЛОМ идете на:

http://80.80.80.80:7657/configui

(вместо 80.80.80.80 подставьте IP вашего VPS) и устанавливаете логин-пароль (чтоб никто не уволок).
Теперь доступ к веб-консоли имеете только вы (ну, я надеюсь на это).

В руководстве рекомендуют: «Пройдите на localhost:7657/index.jsp и нажмите на «Мягкий перезапуск», это перезапустит JVM и все приложения». Сделайте. Не забудьте вместо localhost подставить IP вашего VPS.

Теперь вот какой косяк с i2p под Ubuntu 16.04: в левой панели веб-консоли вы увидите надпись:

Внимание: ECDSA недоступно. Обновите Java или ОС.

Это связано с тем, что Ubuntu 16.04 использует… в общем, вам нужно поставить другую Java, стабильную. Я выбрал вариант от Oracle.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

и далее:

sudo update-java-alternatives -s java-8-oracle

Теперь вам осталось создать новый HTTP-туннель к вашему сайту. Сделать это можно здесь:

http://80.80.80.80:7657/i2ptunnelmgr

(IP поменяйте только)

Выбираете в «Новый открытый сервис» — HTTP (стоит по умолчанию) и жмете «Создать». В поле

Точка доступа: Адрес(H):

Указываете IP вашего VPS. Порт указываете тот, на котором работает сервер (скажем, apache2, обычно это 80 или 8080), и в поле:

Имя веб-сайта(W):

Пишете что-то типа:

moysite.i2p

Ставите галку на автозапуск. По желанию меняете Название(N) и Описание(e).
Остальное не трогаете. Жмете на «Сохранить».

Вуаля! Теперь ваш сайт виден по 32-битному ключу-адресу (типа такого: pqajparec44p74uvpxvxhpd5u3neuqs2t4awwd6bcieku3juhwwa.b32.i2p ) в i2p сети. А если вы добавите ваш сайт в адресные книги различных сервисов, например, сюда: stats.i2p, то со временем и ваше доменное имя moysite.i2p, которое вы указали ранее, попадет в адресные книги остальных сервисов. И ваш сайт смогут находить уже напрямую по этому имени, или через jump-сервисы.

— Но если мой сервер отдает несколько виртхостов на одном сокете, как я узнаю, какой домен будет виден в сети i2p?

А хороший вопрос-то. В общем, я тоже тестировал установку на рабочем сервере с виртхостами и решил вопрос так: назначил сайту для i2p другой порт (который мы прописывали ранее при создании туннеля). Давайте сделаем это вместе. Открываете:

/etc/apache2/ports.conf

И пишете туда:

Listen 8088

Например пусть у нас это будет порт номер 8088.

В другой конфиг:

/etc/apache2/sites-enabled/000-default.conf

Пишете что-то вроде:

<VirtualHost *:8088>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/moysite
ErrorLog ${APACHE_LOG_DIR}/error8088.log
CustomLog ${APACHE_LOG_DIR}/access8088.log combined

(непременно закройте тег VirtualHost — на Хабре глюк с отображением этого куска кода)

DocumentRoot разумеется путь меняете на реальный, на тот где у вас собственно папка DocumentRoot для вашего i2p-сайта. Если нет такой – создайте. Сохраняете всё. Перезапускаете апач:

sudo service apache2 restart

Если не хотите, чтобы ваш i2p-сайт был виден из обычного интернета, в каталог DocumentRoot кладете .htaccess следующего содержания:

Order deny,allow
Deny from all
Allow from 80.80.80.80

80.80.80.80 – меняете на IP своего VDS.

Идете на stats.i2p и добавляете ваш сайт в тамошний сервис.

После добавления ваш сайт становится доступен, например, так:

stats.i2p/cgi-bin/jump.cgi?a=r.i2p

(это адрес сайта, который я и сделал)

И да, в общем-то, более логично, не размещать i2p-сайт на рабочем VPS. Лучше взять под i2p что-то отдельное. Ну, мне так видится.

Если есть доп. вопросы по установке – велком в каменты.

Ссылки на использованные доки:
geti2p.net/ru/faq
help.ubuntu.ru/wiki/i2p
help.ubuntu.ru/wiki/java

Автор: Роман

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js