我的 中有两个接口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
有很多种acl
。src
指的是客户端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 类型描述于文档页面。
但是,手写每个地址很麻烦。因此,我认为这不是一个最终的解决方案。