如何告诉 squid 使用源 IP 地址发送请求?

如何告诉 squid 使用源 IP 地址发送请求?

我的 中有两个接口ifconfig,eth0 和 eth1。Squid 设置为在端口 3000 上接受来自这两个接口的连接。

然而,即使客户端已经使用地址eth0进行连接, 的 IP 地址也始终用于发送代理请求。eth1

我如何强制 squid总是使用只是源 IP 为tcp_outgoing_address(没有在配置文件中写入这个IP)?

我还尝试了以下方法:

acl from_eth0 src A.B.C.D/1
acl from_eth1 src E.F.G.H/1

tcp_outgoing_address A.B.C.D from_eth0
tcp_outgoing_address E.F.G.H from_eth1

如果我需要使用iptables,规则究竟会如何寻找我?

答案1

有很多种aclsrc指的是客户端IP,而不是接口IP(本地地址)。

localip我为此目的使用acl 类型:

acl from_eth0 localip A.B.C.D
acl from_eth1 localip E.F.G.H

tcp_outgoing_address A.B.C.D from_eth0
tcp_outgoing_address E.F.G.H from_eth1
tcp_outgoing_address 1.2.3.4 # default

ACL 类型描述于文档页面

但是,手写每个地址很麻烦。因此,我认为这不是一个最终的解决方案。

相关内容