这是一个一键安装、配置和启动 Squid 代理服务器的脚本。提供 认证版 和 免认证版 两个版本。
- 🚀 一键安装: 自动检测操作系统并安装 Squid
- 🔧 自动配置: 使用优化的配置模板
- 🔐 双版本可选: 支持密码认证版和免认证开放代理版
- 🛡️ 隐私保护: 内置隐私保护设置
- 🔥 防火墙配置: 自动配置防火墙规则
- 📊 状态检测: 安装后自动测试服务状态
| 版本 | 脚本文件 | 认证方式 | 适用场景 |
|---|---|---|---|
| 🔐 认证版 | squid_onekey_run.sh |
用户名 + 密码 | 生产环境、安全要求高 |
| 🌐 免认证版 | squid_onekey_noauth_run.sh |
无需认证 | 内网环境、快速测试 |
- Ubuntu / Debian
- CentOS / RHEL / Rocky Linux / AlmaLinux
- Fedora
- openSUSE / SUSE
- Arch Linux
- Alpine Linux
curl -fsSL https://raw.githubusercontent.com/zwluoqi/proxy_config/refs/heads/main/squid_onekey_run.sh | sudo bash安装完成后,用户名密码会显示在屏幕上,并保存到 /etc/squid/proxy_credentials.txt。
curl -fsSL https://raw.githubusercontent.com/zwluoqi/proxy_config/refs/heads/main/squid_onekey_run.sh | sudo PROXY_USER=myuser PROXY_PASS=mypassword bash# 下载脚本
curl -O https://raw.githubusercontent.com/zwluoqi/proxy_config/refs/heads/main/squid_onekey_run.sh
# 添加执行权限
chmod +x squid_onekey_run.sh
# 执行安装(自动生成密码)
sudo ./squid_onekey_run.sh
# 或者自定义用户名密码
PROXY_USER=myuser PROXY_PASS=mypassword sudo -E ./squid_onekey_run.sh注意: 脚本是完全独立的,包含了所有必要的配置,无需额外下载配置文件。
安装完成后,代理服务器将在端口 5566 上运行,需要用户名密码认证:
# 使用 curl 测试代理(替换为实际的用户名、密码和服务器IP)
curl -x http://proxyuser:yourpassword@YOUR_SERVER_IP:5566 http://httpbin.org/ip
# 或者使用 --proxy-user 参数
curl --proxy-user proxyuser:yourpassword -x http://YOUR_SERVER_IP:5566 http://httpbin.org/ip
# 在浏览器中配置代理
HTTP 代理: YOUR_SERVER_IP:5566
用户名: proxyuser
密码: yourpassword# 查看保存的用户名密码
sudo cat /etc/squid/proxy_credentials.txt# 添加新用户
sudo htpasswd /etc/squid/passwd newusername
# 删除用户
sudo htpasswd -D /etc/squid/passwd username
# 修改用户密码
sudo htpasswd /etc/squid/passwd existinguser
# 添加用户后重启服务
sudo systemctl restart squid
⚠️ 安全提示: 免认证版是开放代理,任何知道 IP 和端口的人都可以使用。请仅在内网或受控环境中使用。
curl -fsSL https://raw.githubusercontent.com/zwluoqi/proxy_config/refs/heads/main/squid_onekey_noauth_run.sh | sudo bash# 下载脚本
curl -O https://raw.githubusercontent.com/zwluoqi/proxy_config/refs/heads/main/squid_onekey_noauth_run.sh
# 添加执行权限
chmod +x squid_onekey_noauth_run.sh
# 执行安装
sudo ./squid_onekey_noauth_run.sh安装完成后,代理服务器将在端口 5566 上运行,无需认证:
# 使用 curl 测试代理(替换为实际的服务器IP)
curl -x http://YOUR_SERVER_IP:5566 http://httpbin.org/ip
# 在浏览器中配置代理
HTTP 代理: YOUR_SERVER_IP:5566
# 无需填写用户名密码脚本会自动配置以下设置:
- 监听端口: 5566
- 隐私保护: 关闭转发头信息
- 缓存设置: 100MB 缓存空间
- 安全规则: 基本的端口和方法限制
- 用户认证: Basic 认证(仅认证版)
# 启动服务
sudo systemctl start squid
# 停止服务
sudo systemctl stop squid
# 重启服务
sudo systemctl restart squid
# 查看状态
sudo systemctl status squid
# 查看访问日志
sudo tail -f /var/log/squid/access.log| 文件 | 路径 | 说明 |
|---|---|---|
| 主配置文件 | /etc/squid/squid.conf |
两个版本通用 |
| 密码文件 | /etc/squid/passwd |
仅认证版 |
| 凭据记录 | /etc/squid/proxy_credentials.txt |
仅认证版 |
| 缓存目录 | /var/spool/squid |
两个版本通用 |
| 日志目录 | /var/log/squid/ |
两个版本通用 |
如需修改配置,请编辑 /etc/squid/squid.conf 文件,然后重启服务:
sudo nano /etc/squid/squid.conf
sudo systemctl restart squid✅ 两个版本共有的安全措施:
- 隐藏代理服务器信息
- 移除可追踪的 HTTP 头
- 限制安全端口
🔐 认证版额外安全措施:
- 用户名密码认证(Basic Auth)
- 凭据文件权限保护
📝 额外建议:
- 修改默认端口: 建议修改默认端口 5566 为其他端口
- 使用强密码: 确保使用复杂的密码(认证版)
- 定期更换密码: 定期更新代理密码(认证版)
- 监控日志: 定期检查访问日志
- 限制访问 IP: 免认证版建议通过防火墙限制来源 IP
sudo systemctl status squidsudo squid -k parsesudo tail -f /var/log/squid/cache.logsudo netstat -tlnp | grep 5566
# 或
sudo ss -tlnp | grep 5566# 测试密码文件
sudo cat /etc/squid/passwd
# 测试认证程序
echo "username password" | /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd如需卸载 Squid:
# Ubuntu/Debian
sudo apt-get remove --purge squid
# CentOS/RHEL/Fedora
sudo yum remove squid
# 或
sudo dnf remove squid
# 删除配置和缓存文件
sudo rm -rf /etc/squid /var/spool/squid /var/log/squidMIT License
欢迎提交 Issue 和 Pull Request!
- v1.2.0: 新增免认证版本 (
squid_onekey_noauth_run.sh),支持无密码开放代理 - v1.1.0: 添加用户名密码认证功能,避免开放代理
- v1.0.0: 初始版本,支持主流 Linux 发行版的一键安装