Linux企业级Squid缓存与Web反向代理部署实战教程

Linux企业级Squid缓存与Web反向代理部署实战教程
一、实验环境与规划1.企业网络拓扑内网区域VMnet1仅主机​外网区域VMnet8NAT​防火墙/代理服务器双网卡做SNAT/DNAT/Squid 代理2. 主机信息表4. 实验目标1.安装配置 Squid 正向代理​2.实现透明代理客户端免配置​3.实现 Squid 反向代理​4.故障排查与防火墙放行二、1.Server2 安装 squid 代理服务sudo -irpm -qa | grep squidmount /dev/cdrom /mediadnf clean alldnf install squid -y启动并开机自启systemctl start squidsystemctl enable squid2.Client1 安装配置 Web 服务dnf install httpd -ysystemctl start httpdsystemctl enable httpdsystemctl start firewalldfirewall-cmd --permanent --add-servicehttpfirewall-cmd --reload测试Web服务firefox 127.0.0.13.Server2 配置 squid 正向代理vim /etc/squid/squid.confacl Localnet src 192.0.0.0/8cache_dir ufs /var/spool/squid 10240 16 256visible_hostname server24.Server1 添加手动代理配置浏览器设置手动代理配置​HTTP Proxy192.168.72.20​Port3128​勾选 Use this proxy server for all protocols访问192.168.136.113出现错误The proxy server is refusing connections5.故障排除firewall-cmd --permanent --add-servicesquidfirewall-cmd --permanent --add-port80/tcpfirewall-cmd --reload再次访问 192.168.136.113 成功打开 Apache 测试页。之前访问报错核心是Linux防火墙拦截了Squid代理和网页流量执行三条命令给防火墙放行端口、重载规则后流量可以正常通行网页就成功打开了。故障根源firewalld默认拒绝外部未授权访问即使Squid服务配置正确流量也会被防火墙阻断浏览器提示代理拒绝连接。​三条命令的作用放行 squid 服务开放代理默认3128端口允许代理请求接入​放行 80/tcp 端口放开HTTP网页访问通道​重载防火墙永久规则即时生效不用重启设备最终效果客户端代理请求、网页往返流量全程无阻拦Squid可以正常转发数据顺利加载远端Apache默认测试页面。6.客户端不需要配置代理服务器的解决方案vim /etc/squid/squid.conf添加http_port 3128http_port 3129 transparentsystemctl restart squid防火墙端口转发firewall-cmd --permanent --add-forward-portport80:prototcp:toport3129firewall-cmd --reloadsystemctl restart squid客户端设置为 No proxy 即可访问。7.反向代理解决方案安装 httpdmount /dev/cdrom /mediadnf clean alldnf install httpd -y修改 squid 配置vim /etc/squid/squid.confacl localnet src 192.0.0.0/8http_port 192.168.136.112:80 vhostcache_peer 192.168.72.1 parent 80 0 originserver weight5 max_conn30acl localnet 预先定义可访问的内网客户端网段范围​http_port vhost 让Squid在代理服务器80端口监听外网请求开启反向代理虚拟主机能力​cache_peer 指定后端真实内网Web服务器地址配置反向转发、连接上限与负载权重访问时提示 The requested url could not be retrieved 页面无法正常打开。报错根本原因Squid有严格的默认安全机制仅定义转发规则、网段标记不等于允许访问。缺少权限放行规则时即使转发链路配置无误所有客户端请求也会被Squid默认拦截拒绝。在配置中补充放行规则http_access allow localnethttp_access allow localhost放行之前定义的内网网段允许对应客户端接入​放行服务器本机本地访问保障服务自测与回连通路重启服务systemctl restart squid访问192.168.136.112成功显示内网 Web 服务页面。客户端访问代理服务器公网IP → 匹配内网网段ACL → 放行规则允许通行 → Squid将请求转发给后端真实Web站点 → 后端页面数据原路返回客户端反向代理访问完全恢复正常。声明本文仅用于技术学习与合规企业内网运维严禁用于任何违规网络行为