我们的企业环境基本上与互联网隔绝,除了在 运行的 HTTP(正向)代理192.168.1.2:8080
。有一个防火墙,其中包含用于代理访问的 IP 白名单,并且代理本身具有每个源 IP 组的 URL 白名单。
我们希望使白名单主机可用的现有服务 ( https://example.com
) 更容易被网络上其他非白名单主机访问。客户端配置应该很简单。
为了实现此目标,我们希望在白名单主机之一上设置反向代理,以便通过路由请求192.168.1.2:8080
。总体而言,成功的请求将如下所示:
client
-- GET --v
https://example.company.com
-- CONNECT via 192.168.1.2:8080 --v
https://example.com
我有一个小的 Python 脚本可以做到这一点,但操作起来会非常麻烦,所以值得在这里寻求建议。我们会在它前面使用 HAProxy 或其他东西来终止 TLS、配置 ACL、进行负载平衡等,那么我们有没有办法使用它来直接连接?
到目前为止我们已经检查过:
- 配置文档,似乎没有任何由
proxy
、http_proxy
或forward
与此用例相关的配置 - 并且http_proxy
代码库中的唯一实例是不相关的。 proxychains
,但此方法无效,因为 HAProxy 仍尝试自行进行 DNS 解析,而通过192.168.1.2:8080
- redsocks + iptables,由于同样的原因,这不是一个好的解决方案 - HAProxy 仍然会在提交请求之前尝试进行 DNS 解析。我认为这适用于任何不支持转发代理的软件。
- 其他代理 -
squid
、nginx
似乎tinyproxy
都缺乏针对此用例的配置。不可否认的是,很难从搜索结果中过滤垃圾,例如“正向代理前面的反向代理”和“指向正向代理的反向代理”