我安装了一台带有 30 个附加代理地址的 squid 服务器。每当我尝试在浏览器(如 chrome)中使用这些代理地址之一时,我的 IP 都会显示为主服务器 IP,而不是附加地址。例如,假设主 IP 是 192.0.0.10,而我尝试使用的附加 IP 是 192.0.0.13,当访问“我的 IP 是什么”类型的网站时,无论我使用什么附加地址,它都会显示 192.0.0.10。有人知道为什么会发生这种情况吗?感谢您的帮助。
答案1
发生这种情况是因为来自服务器的传出连接的地址选择是一个独立的过程。
传出地址选择算法描述于http://linux-ip.net/html/routing-saddr-selection.html。
顺序是:
- 特定 IP 的申请请求
src
所选路线的提示- 接口上为匹配的路由表条目配置的第一个地址
在您的情况下,选项 1 和 2 均不适用,因此系统使用为网络接口配置的第一个地址。
Squid 似乎有一个选项可以配置传出连接的源地址:http://www.squid-cache.org/Doc/config/tcp_outgoing_address/。这将是上面列表中的选项 1。
但是好像不支持使用客户端要连接的IP地址,可以为不同的用户名配置不同的IP地址,也可以为不同的用户源IP地址配置不同的IP地址。