CentOS 7部署Squid正向代理后拦截所有请求求助
解决Squid正向代理拦截所有请求的问题
- 调整
http_access规则顺序
Squid的访问规则是按从上到下的顺序匹配的,默认配置末尾通常有http_access deny all。如果你把http_access allow all加在这条规则之后,它根本不会被执行。编辑/etc/squid/squid.conf,将http_access allow all移到http_access deny all的前面,然后重启服务:
systemctl restart squid
- 检查防火墙与SELinux设置
CentOS 7默认启用firewalld,必须开放Squid的默认端口3128:- 临时开放:
firewall-cmd --add-port=3128/tcp - 永久开放:
firewall-cmd --add-port=3128/tcp --permanent && firewall-cmd --reload
另外,SELinux可能会阻止Squid对外连接,临时关闭测试:setenforce 0,如果问题解决,再配置SELinux允许Squid联网:
- 临时开放:
setsebool -P squid_connect_any 1
查看Squid日志定位具体原因
如果调整规则后仍有问题,查看Squid的访问日志/var/log/squid/access.log,里面会记录每个请求的处理结果(比如拒绝的规则ID、错误代码),根据日志信息针对性调整配置。比如日志里出现TCP_DENIED/403,说明是访问规则拦截,出现TCP_RESET/503可能是网络或SELinux问题。添加客户端IP段的ACL规则
如果不想全局允许所有访问,也可以针对Ubuntu客户端所在的IP段配置允许规则,比如你的客户端网段是192.168.1.0/24,在http_access deny all前添加:
acl allowed_clients src 192.168.1.0/24 http_access allow allowed_clients
保存配置后重启Squid即可。
内容的提问来源于stack exchange,提问作者RED
相关产品推荐
相关产品推荐

