实验环境:
Rocky_linux9 镜像一份。
虚拟机三台(一台作为web服务器,一台作为Squid服务器(Squid服务器需要配置双网卡),一台模拟客户端)
实验拓扑:
透明模式部署
透明模式的实现依赖于默认路由和防火墙的重定向策略。在透明模式下,Squid不会修改客户端的请求,而是将请求转发到目标服务器,然后将目标服务器的响应返回给客户端
修改squid配置文件,指定为透明模式
注:由于在5.5版本中需要将http代理和透明模式代理分开使用,如果只配置一个端口的话启动时会报错
vim /etc/squid/squid.conf
#找到http_port这一行,修改为ip:端口并指定为透明模式
http_port 10.10.10.12:3128 transparent(透明模式)
http_port 3129
开启路由转发模式,并配置防火墙nat规则
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf #开启路由转发
#立即生效
sysctl -p
#配置iptables规则
iptables -t nat -A PREROUTING -i ens33 -s 192.168.46.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128 #当入站网卡是ens33,内网网段是10.10.10.0/24,并且它访问的目标端口是80时,就把它重定向到3128这个端口
使用客户端直接访问公网的web服务器
#这里需要注意,客户端的网关需要指向Squid服务器地址
curl 10.10.10.4
浏览器中关闭代理,再次访问