![防止 Squid 代理将传出请求的 IP 地址更改为自己的](https://linux22.com/image/761960/%E9%98%B2%E6%AD%A2%20Squid%20%E4%BB%A3%E7%90%86%E5%B0%86%E4%BC%A0%E5%87%BA%E8%AF%B7%E6%B1%82%E7%9A%84%20IP%20%E5%9C%B0%E5%9D%80%E6%9B%B4%E6%94%B9%E4%B8%BA%E8%87%AA%E5%B7%B1%E7%9A%84.png)
我们正在尝试将虚拟机的流量转发到 Squid Proxy。当请求被 Squid Proxy 拦截并离开代理时,所有请求的源 IP 都会从客户端的 IP 更改为 Squid Proxy 的服务器的 IP 地址。
我们的要求是确保请求通过 SSL 连接,但同时,我们希望客户端 IP 得到保留,不会被 Squid Proxy 更改。有没有办法在配置文件 (squid.conf) 上添加任何标签,以防止客户端 IP 被修改。
我们需要客户端 IP 来单独评估规则,并且在需要 ssl-bump 的同时,我们还需要客户端源 IP 作为传出请求的签名。
答案1
代理服务器通过接受来自客户端的连接并代表客户端向目标服务器发送请求来工作。
TCP 层发生以下情况:
Client --> TCP connection --> Squid --> TCP Connection --> destination
客户端使用自己的 IP 地址打开与 Squid 的 TCP 连接。Squid 使用自己的 IP 地址打开与目标服务器的 TCP 连接。
这意味着来自代理服务器的 TCP 连接始终有自己的 IP 地址。这是 TCP/IP 协议的基本操作模式,无法绕过它。
答案2
我认为您需要一个 x-forwarded-for 标头...然后,您会在下一跳上读取标头,该标头将包含原始 IP 地址,而不是 squid 服务器。它总是会将源替换为其自己的 IP 地址...但您可以让它将原始标头写入您稍后可以提取的标头。这就是您使用 Web 代理等所做的事情。