use*_*702 6 networking debian proxy squid
我有一台 Linux Debian 机器,有许多运行 Squid 的网络接口(venet0:1 到 venet0:5)。如果我连接到接口 venet0:2,squid 使用 venet0:0 进行传出流量,但我希望 Squid 使用相同的网络接口进行连接。因此,如果我连接到 venet0:1 的 IP 地址,代理也应该使用相同的接口进行传出流量。
目前我使用以下配置:
http_port 200
forwarded_for off
uri_whitespace encode
visible_hostname localhost
via off
collapsed_forwarding on
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users
auth_param basic children 5
auth_param basic realm Proxy
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl ncsa_users proxy_auth REQUIRED
access_log none
cache_store_log none
cache_log /dev/null
acl all src all
http_access allow ncsa_users
header_access From deny all
header_access Referer deny all
header_access Server deny all
header_access User-Agent allow all
header_access WWW-Authenticate deny all
header_access Link deny all
header_access Accept-Charset deny all
header_access Accept-Encoding deny all
header_access Accept-Language deny all
header_access Content-Language deny all
header_access Mime-Version deny all
Run Code Online (Sandbox Code Playgroud)
我已经尝试过http://www.tastyplacement.com/squid-proxy-multiple-outgoing-ip-addresses 中的教程,但我认为我不能使用它,因为我使用 ncsa 而不是源 ip 验证用户地址。
有没有可能让鱿鱼使用正确的网络接口?如果我能避免 acl 规则就好了,因为每次更改一个 IP 地址都需要更改配置。
小智 8
最好的解决方案是为每个接口创建一个 acl,使进入该接口的所有请求都属于该组,并将该组重定向到特定的传出接口。
示例:
服务器 X 具有以下 IP:
因此,squid.conf 文件应该类似于:
acl 10_0_0_1 localip 10.0.0.1
tcp_outgoing_address 10.0.0.1 10_0_0_1
acl 10_0_0_2 localip 10.0.0.2
tcp_outgoing_address 10.0.0.2 10_0_0_2
acl 10_0_0_3 localip 10.0.0.3
tcp_outgoing_address 10.0.0.3 10_0_0_3
Run Code Online (Sandbox Code Playgroud)
然后向“10.0.0.1”发出的任何请求将使用“10.0.0.1”接口,向“10.0.0.2”发出的任何请求将使用“10.0.0.2”接口,依此类推。
我知道这是一个老问题,但由于它仍然是第一个谷歌搜索结果,发布正确答案仍然有效。
它是在 acl 中配置的,因此在该行之后:
acl youracl src IP.Ad.Res.Of venet:0:2
添加以下内容:
tcp_outgoing_address 192.168.1.1 你的acl
| 归档时间: |
|
| 查看次数: |
16432 次 |
| 最近记录: |