在网络运维与安全领域,代理服务器是流量调度、访问控制和缓存加速的重要工具。 Squid 作为开源、高性能的 HTTP/HTTPS/FTP 缓存代理,广泛应用于企业内网、教育网络、爬虫集群等场景。 本文将从 原理 → 安装 → 配置 → 优化 → 安全加固 全流程讲解,帮助你快速搭建可用、稳定且安全的 Squid 代理服务。
架构示意:
[Client] ⇄ [Squid Proxy] ⇄ [Internet]
项目 | 推荐配置 |
---|---|
系统 | Ubuntu 20.04 / CentOS 7+ |
内存 | ≥ 1GB(缓存多建议 4GB+) |
磁盘 | ≥ 10GB(缓存目录需额外空间) |
网络 | 公网 IP(或内网测试环境) |
sudo apt update
sudo apt install squid -y
sudo yum install squid -y
安装完成后,主配置文件路径:
/etc/squid/squid.conf
默认端口为 3128,可在 squid.conf
中修改:
http_port 3128
示例:仅允许特定 IP 段访问
acl allowed_ips src 192.168.1.0/24
http_access allow allowed_ips
http_access deny all
cache_dir ufs /var/spool/squid 100 16 256
100
:缓存大小(MB)16
、256
:目录层级sudo systemctl enable squid
sudo systemctl start squid
Squid 默认支持 HTTP,若需 HTTPS:
acl SSL_ports port 443
acl CONNECT method CONNECT
http_access allow CONNECT SSL_ports
客户端需配置为 HTTP 代理,访问 HTTPS 时会自动使用 CONNECT 隧道。
cache_mem 256 MB
ulimit -n 65535
workers 4
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm Squid Proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
生成用户密码:
sudo apt install apache2-utils -y
htpasswd -c /etc/squid/passwd user1
tail -f /var/log/squid/access.log
问题 | 可能原因 | 解决方案 |
---|---|---|
代理无法访问外网 | 防火墙阻挡 | 开放 3128 端口 |
HTTPS 报错 | CONNECT 未配置 | 检查 ACL |
缓存无效 | refresh_pattern 不匹配 | 调整规则 |
Squid 作为成熟的代理解决方案,具备 高性能、可扩展、可控性强 的优势。 通过合理配置 ACL、缓存策略与安全加固措施,可以在企业、教育、爬虫等多种场景中稳定运行。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。