根据本地端口,通过不同的公共 IP 在 Squid 中进行代理转发

lui*_*ati 2 proxy ip squid forwarding

我希望通过不同的公共 IP 转发持久性 HTTP 请求。它连接到服务器并在服务器持续传输数据时保持连接。

这需要对应用程序透明;路由逻辑需要仅限于建立到目标端口号(或主机:端口)的 HTTP 连接。

我正在考虑让 Squid 服务侦听 LAN IP 但侦听多个端口;如果应用程序连接到端口 A,则通过 nic A 转发请求;对于端口 B 连接,通过网卡 B 转发;等等。

这是 Squid 合适的任务吗?我在哪里可以找到有关配置的一些提示?我在阅读 Squid 文档时迷失了与此相关的任何内容(特别是如何映射本地端口-> 不同的输出 NIC)。

Die*_*sen 5

是的,Squid 可以。

http_port 3128
http_port 3129
http_port 3130

acl port1 myport 3128
acl port2 myport 3129
acl port3 myport 3130

tcp_outgoing_address x.x.x.1 port1
tcp_outgoing_address x.x.x.2 port2
tcp_outgoing_address x.x.x.3 port3
Run Code Online (Sandbox Code Playgroud)

如果每个 IP 地址有不同的网关,则还必须配置源路由:

ip rule add from x.x.x.1 table 10
ip rule add from x.x.x.2 table 11

ip route add table 10 default via GW1
ip route add table 11 default via GW2

ip route add default via GW3
Run Code Online (Sandbox Code Playgroud)

在 squid.conf 中,重要的是设置:

server_persistent_connections off
Run Code Online (Sandbox Code Playgroud)

或者我的程序不起作用。