Polipo Proxy указывает сетевой интерфейс для прослушивания
Прямо сейчас я более внимательно изучаю программное обеспечение для прокси-сервера polipo. Мне уже удалось настроить простой прокси socks5 с базовой аутентификацией пользователя.
Все, что нужно, это изменить интерфейс прослушивания с eth0 на ppp0. К сожалению, документация polipo не предоставляет никаких подробностей об этой задаче.
Операционная система Debian 8 работает в Hyper-V.
Можно ли как-нибудь выполнить эту настройку, либо с помощью параметров вызова, либо файла конфигурации, либо даже с помощью iptables?
2 ответа
В функции
create_listener
, в файле
io.c
, после строки 751 добавьте примерно следующее:
struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
strcpy(ifr.ifr_name, "ppp0");
rc = setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr));
if(rc < 0) {
done = (*handler)(-errno, NULL, NULL);
assert(done);
return NULL;
}
Примечание: это не дает рабочего решения вопроса. Я посмотрел на что-то подобное, но согласился с использованием другого прокси-программного обеспечения. Возможно, эта информация поможет прийти к рабочему решению.
Вот некоторые возможные решения, которые я нашел:
использовать сетевые пространства имен (unix stackexchange, superuser, igalia blog)
читать больше в информации:
info ip-netns
"сконфигурировать polipo для прослушивания на каждом интерфейсе, а затем заблокировать запросы от нежелательных интерфейсов с iptables" ( форум archlinux)
- использовать другое прокси-программное обеспечение, например tinyproxy (форум archlinux)
[unix stackexchange]: https://unix.stackexchange.com/questions/210982
[superuser]: https://superuser.com/questions/241178