【问题标题】:WinDivert: redirect to proxy listening on loopback interface onlyWinDivert:重定向到仅在环回接口上侦听的代理
【发布时间】:2017-07-20 13:56:18
【问题描述】:

尝试以与this post 相同的方式实现透明代理,但我有一个仅在环回接口上侦听的“代理”。一旦我将 DstAddr 设置为环回,第二个 TCP 握手包就永远不会收到

...
iphdr->DstAddr = htonl(INADDR_LOOPBACK);
tcphdr->DstPort = ProxyPort;
addr->Direction = WINDIVERT_DIRECTION_INBOUND;
...

但如果 DstAddr = address_of_network_interface_packet_captured_from 则有效。

还试图改变addr:

    addr->IfIdx = 1;
    addr->SubIfIdx = 0;

没有任何影响。

有没有办法实现这样的配置?

【问题讨论】:

    标签: wfp transparentproxy


    【解决方案1】:

    与原始链接帖子一样,这里似乎没有任何代码处理反向路径(即处理连接->代理,但代理->连接没有)。这可以解释为什么从未收到过SYNACK

    要转移到本地代理,请参阅streamdump 示例程序。

    【讨论】:

    • 感谢您的回复,
    • 但关键是我需要将代理限制为仅环回接口(127.0.0.1)。我的过滤器是(tcp.DstPort == 80 或 tcp.DstPort == 443 或 tcp.SrcPort == )所以我认为它应该处理“代理->连接”路径?
    • 如果我修改 streamdump 使其在 INADDR_LOOPBACK 上运行代理并在主循环中进行适当的更改,它将停止工作。也许有什么技巧可以注入/重定向到环回接口?
    • 作为参考,这个问题在这里进一步讨论:github.com/basil00/Divert/issues/82
    猜你喜欢
    • 2014-07-22
    • 2015-04-21
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2011-12-10
    相关资源
    最近更新 更多