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
Другие вопросы по тегам