333.i2p

Форум, посвященный разработке и поддержке i2pd
Sun, 22 May 2016, 08:48am Предложение по реализации outproxy »
partizan
Участник
Registered: February 2016
Последний раз: Sat, 24 Sep 2016
Сообщения: 5

Предлагаю идею для более правильной реализации в клиенте i2pd outproxy, которую так многие хотят использовать на свою голову.
Я исхожу из того предположения, что для i2p выход в клирнет вреден. Для этого специально придуман tor. Поэтому каждый инструмент необходимо использовать по его прямому назначению.
Каждый современный браузер поддерживает Proxy Auto-Configuration (PAC). Раз в i2pd-слиенте есть http-сервер, использующийся для консоли, то есть возможность малыми средствами отдавать через него же и файл автоконфигурации, который может лежать в каталоге рядом с файлами конфигурации демона и туннелей. Например, включить в дистрибутив файл <i2pd_work_dir>/pac/i2p_tor.pac:

function FindProxyForURL(url, host) {
if (dnsDomainIs(host, ".i2p"))
// i2pd
// return "SOCKS5 127.0.0.1:9051";
return "PROXY 127.0.0.1:4444";

// Tor in other cases
return "SOCKS5 127.0.0.1:9050";
}

и указывать его url в настройках браузера. Например, в firefox в <Preferences><Advanced><Network><Settings...> выбрать <Automatic proxy configuration URL:> и указать "http://localhost:7070/pac/i2pd_tor.pac";

Во-первых, таким образом, из кода i2pd можно удалить лишний (и потенциально кривой) код outproxy. Во-вторых, пользователь может конфигурить пути выхода в инет как ему вздумается на свой страх и риск.
В файле PAC употребление "return "SOCKS5" гарантирует использование "remote DNS" без дополнительных телодвижений. (http proxy делает это по-умолчанию, насколько я знаю).

Offline