Предлагаю идею для более правильной реализации в клиенте 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 делает это по-умолчанию, насколько я знаю).