Networking Polipo代理指定要侦听的网络接口

Networking Polipo代理指定要侦听的网络接口,networking,interface,proxy,polipo,Networking,Interface,Proxy,Polipo,目前,我正在仔细研究polipo代理软件。我已经设法用基本的用户身份验证设置了一个easy socks5代理 它需要完成的只是将侦听接口从eth0更改为ppp0。遗憾的是,polipo文档没有提供有关此任务的任何详细信息 操作系统是在Hyper-V中运行的Debian 8 可以通过调用参数或配置文件甚至iptables以某种方式完成此配置吗 注意:这并不能为这个问题提供有效的解决方案。我研究了一些类似的东西,但决定使用不同的代理软件。也许这些信息有助于达成有效的解决方案 我发现一些可能的解决方案

目前,我正在仔细研究polipo代理软件。我已经设法用基本的用户身份验证设置了一个easy socks5代理

它需要完成的只是将侦听接口从eth0更改为ppp0。遗憾的是,polipo文档没有提供有关此任务的任何详细信息

操作系统是在Hyper-V中运行的Debian 8

可以通过调用参数或配置文件甚至iptables以某种方式完成此配置吗

注意:这并不能为这个问题提供有效的解决方案。我研究了一些类似的东西,但决定使用不同的代理软件。也许这些信息有助于达成有效的解决方案

我发现一些可能的解决方案如下:

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、超级用户)

    阅读更多信息:
    信息ip网络

  • “将polipo配置为侦听每个接口,然后阻止来自 不希望使用iptables的接口“()

  • 使用不同的代理软件,如tinyproxy(archlinux论坛)


在函数
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;
}
struct-ifreq-ifr;
memset(&ifr,0,sizeof(ifr));
strcpy(ifr.ifr_名称,“ppp0”);
rc=setsockopt(fd,SOL_SOCKET,SO_BINDTODEVICE,&ifr,sizeof(ifr));
if(rc<0){
完成=(*处理程序)(-errno,NULL,NULL);
断言(完成);
返回NULL;
}