I2PTunnel

Материал из I2P-ilita вики
Перейти к навигацииПерейти к поиску

I2PTunnel - это инструмент, можно сказать, интерфейс для предоставления сервисов в I2P. Точка назначения I2PTunnel (или, попросту говоря, туннеля) может быть определена с использованием имени хоста (hostname), Base32-адреса, либо полного Base64-адреса назначения (к которому в конечном итоге сводятся и B32 адрес, и имя хоста. Созданный I2P туннель доступен на вашей клиентской машине как localhost:<порт туннеля>. Если вы хотите предоставлять какой-либо сервис в сети I2P, то вы просто создаете I2PTunnel к необходимой связке <IP-адрес>:<Port>. Соответствующий 516-байтовый ключ точки назначения будет сгенерирован роутером для данного сервиса, и сервис будет доступен внутри I2P-сети. Веб-интерфейс для управления I2P-туннелями доступен в панели управления вашего роутера, по ссылке [1]

Туннели по-умолчанию[править]

Серверные туннели[править]

I2P Webserver - туннель, указывающий на встроенную заготовку для сайта на базе встраиваемого, опять же, сервера Jetty, запущенного по адресу localhost:7658 (по-умолчанию отключен). В реальности это самый простой путь создать веб-сайт, но намного лучше использовать специализированные, "взрослые" веб-серверы для подобных задач. Как это сделать подробно описано в статье Руководство по настройке Linux Web сервера.

Если же вы решили всё-таки использовать Jetty, то файлы, которые будут доступны на сайте, лежат в директориях:

Unix - %APPDATA%\I2P\eepsite\docroot
Windows - C:\Users\**username**\AppData\Roaming\I2P\eepsite\docroot

Клиентские туннели[править]

I2P HTTP Proxy - localhost:4444 - HTTP-прокси используемый для того, чтобы просматривать сайты в I2P (ну, и в обычном интернете, к сожалению [1]) анонимно, через I2P. Выход в обычный интернет через I2P использует случайный прокси, указанные на странице настройки тоннеля в графе "Outproxies".

IRC Proxy - localhost:6668 - IRC прокси к дефолтному анонимному IRC-серверу.

mtn.i2p2.i2p - localhost:8998 - Анонимный репозиторий исходного кода I2P, работающий на Monotone.

smtp.postman.i2p - localhost:7659 - SMTP сервер от Постмана [hq.postman.i2p]

pop3.postman.i2p - localhost:7660 - Сопутствующий POP сервер от Постмана [hq.postman.i2p]

Режимы клиентских туннелей[править]

Стандартный[править]

Открывает локальное TCP-соединение, которое соединяется с сервисом в месте назначения (destination) внутри I2P. Туннель направлен в случайный хост из списка точек назначения, разделенных запятыми. (Это не бред - в поле "адрес назначения туннеля" можно указать несколько случайных адресов, непонятно, правда, зачем). Я также замечу, что данный тип туннеля наиболее универсален. По сути он не предоставляет никаких оберток для проходящего трафика, за счет чего можно связать практически любые приложения посредством I2P. Простой пример - ssh. По сути вам необходимо создать стандартный серверный туннель на сервере, который передаёт данные в порт 22, и стандартный клиентский туннель на клиенте, который (вот сюрприз) тоже слушает порт 22 (впрочем, это уже не обязательно). После всего этого вы получите доступ по ssh на свой сервер, причем ещё и анонимный, за счет пропускания трафика через I2P. В итоге получится цепочка:

(ssh-server:22-port) <=> ( server_i2p_tunnel:22-port:destination1 ) <=> I2P <=> (client_i2p_tunnel:22-port:destination2) <=> (ssh-client)

Удобно, согласитесь, для анонимного администрирования сервера, к примеру.

HTTP[править]

Клиентский туннель HTTP. Соединяется с точкой назначения, определенной по URL в HTTP-запросе. Поддерживает проксирование в интернеты, если outproxy указан в настройках туннеля. Вырезает из HTTP-запроса следующие заголовки:

  • Accept, Accept-Charset, Accept-Encoding, Accept-Language and Accept-Ranges Так как они очень разнятся от браузера к браузеру, и вполне подходят для использования как идентификаторы пользователя, что может пригодиться для деанонимизации.
  • Referer:
  • Via:
  • From:


Клиент-серверные туннели HTTP, пропускаемые через I2PTunnel принудительно включают компрессию трафика, используя следующие заголовки:

  • Accept-Encoding:
  • X-Accept-Encoding: x-i2p-gzip;q=1.0, identity;q=0.5, deflate;q=0, gzip;q=0, *;q=0

В зависимости от того, использует туннель outproxy или нет, обёртка также может добавлять следующий User-Agent:

  • Outproxy: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
  • Внутреннее использование I2P: User-Agent: MYOB/6.66 (AN/ON)

IRC[править]

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

Белый список команд:

  • MODE
  • JOIN
  • NICK
  • QUIT
  • PART
  • WALLOPS
  • ERROR
  • KICK
  • H
  • TOPIC

SOCKS 4/4a/5[править]

Позволяет использовать I2P-роутер как SOCKS-прокси

SOCKS IRC[править]

Позволяет использовать I2P роутер как SOCKS прокси для доступа к IRC, с белым списком команд, определенных режимом IRC клиента.

CONNECT[править]

Создает HTTP туннель, и использует метод HTTP-запроса "CONNECT" для создания TCP-туннеля. Обычно используется для SSL и HTTPS

Streamr[править]

Создает UDP-сервер, соединенный со Streamr-клиентом I2PTunnel. Туннель Streamr-клиента подпишется на туннель streamr-сервера. (Что это значит не спрашивайте - очевидно речь идет о передаче потоковых данных, наподобие видео и аудио. У желающих узнать подробнее всегда есть возможность покопаться либо в документации, либо в исходном коде роутера).

Иллюстрация работы этого странного туннеля

Режимы серверных туннелей[править]

Standard[править]

Создает точку назначения, направленную в локальный адрес ip:port, главное, чтобы там был реально открыт этот TCP-порт, и на нем висел сервер, который слушает входящие соединения.

HTTP[править]

Создаёт точку назначения, направленную на локальный HTTP-сервер в виде ip:port. Например 127.0.0.1:80. Поддерживает gzip для клиентов с заголовком в запросе Accept-encoding: x-i2p-gzip, в ответ включает заголовок Content-encoding: x-i2p-gzip в таком запросе.

HTTP Bidirectional[править]

Функционирует и как туннель для HTTP-Сервера, так и как клиентский HTTP-туннель, без какой-либо поддержки outproxy. Использоваться может например для тестирования веб-приложений, либо как loopback-интерфейс для диагностических целей.

IRC[править]

Создаёт точку назначения, которая фильтрует регистрирующие клиента последовательности, и передаёт IRC-серверу ключ точки назначения клиента как имя хоста.

Streamr[править]

UDP-клиент, присоединяющийся к созданному media-серверу. A UDP-client that connects to a media server is created. UDP-клиент используется совместно с Streamr сервером.

Заметки[править]

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

Статьи по теме[править]