在AWS Linux(如Amazon Linux 2或CentOS)上安装和配置Squid代理服务器
·
在AWS Linux(如Amazon Linux 2或CentOS)上安装和配置Squid代理服务器,可通过以下步骤实现。Squid支持HTTP/HTTPS代理、缓存加速和访问控制,适用于内网穿透、安全过滤等场景。
一、安装Squid
1. 更新系统包
sudo yum update -y # Amazon Linux/CentOS
# 或
sudo dnf update -y # 新版Fedora/Amazon Linux 2023+
2. 安装Squid
sudo yum install squid -y # 传统包管理
# 或
sudo dnf install squid -y # 推荐(支持更快的依赖解析)
二、基础配置
1. 修改配置文件
编辑主配置文件 /etc/squid/squid.conf:
sudo vim /etc/squid/squid.conf
2. 关键配置项
# 监听端口(默认3128)
http_port 3128
# 允许访问的IP范围(根据需求调整)
acl localnet src 192.168.1.0/24 # 本地网段
acl aws_internal src 10.0.0.0/16 # AWS VPC内网
# 允许的安全端口(SSH、HTTP等)
acl Safe_ports port 22 # SSH
acl Safe_ports port 80 # HTTP
acl Safe_ports port 443 # HTTPS
# 访问控制规则(顺序敏感)
http_access allow localnet
http_access allow aws_internal
http_access deny all
# 缓存配置(可选)
cache_dir ufs /var/spool/squid 100 16 256 # 缓存目录和大小
三、高级配置(可选)
1. 用户认证
为代理添加账号密码:
# 安装认证工具
sudo yum install httpd-tools -y
# 创建密码文件
sudo htpasswd -c /etc/squid/passwd your_username # 首次创建需加 -c
sudo htpasswd /etc/squid/passwd another_user # 后续添加无需 -c
# 修改配置文件
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm Squid-Proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
2. HTTPS代理支持
生成SSL证书并启用HTTPS端口:
sudo openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/squid/ssl/squid.key -out /etc/squid/ssl/squid.crt
# 修改配置文件
https_port 3129 cert=/etc/squid/ssl/squid.crt key=/etc/squid/ssl/squid.key
四、防火墙与安全组
1. 本地防火墙
sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --reload
2. AWS安全组
在AWS控制台为EC2实例添加入站规则:
- 类型:自定义TCP
- 端口范围:3128(HTTP代理)或3129(HTTPS代理)
- 来源:指定IP或安全组(如
sg-12345678)
五、启动与验证
1. 启动服务
sudo systemctl enable squid # 开机自启
sudo systemctl restart squid
2. 测试代理
# 使用curl测试HTTP代理
curl -x http://localhost:3128 http://www.baidu.com
# 通过SSH隧道加密连接(参考)
ssh -i your_key.pem -L 3128:localhost:3128 ec2-user@your-aws-ip
六、日志与排错
- 查看日志:
tail -f /var/log/squid/access.log # 访问记录 tail -f /var/log/squid/cache.log # 缓存日志 - 常见问题:
- 连接被拒绝:检查
http_port是否开放,防火墙/安全组是否放行。 - 认证失败:确认密码文件路径和权限(
chown squid:squid /etc/squid/passwd)。 - 配置语法错误:使用
sudo squid -k parse验证配置。
- 连接被拒绝:检查
七、性能优化建议
- 缓存调优:
cache_mem 256 MB # 内存缓存大小 maximum_object_size 100 MB # 允许缓存的最大文件 - 启用异步IO:
cache_dir ufs /var/spool/squid 1000 16 256 # 增大缓存目录 - 限制带宽:
delay_pools 1 delay_class 1 1 delay_parameters 1 16000/16000 # 限制每秒16KB
引用来源
- 安装与基础配置参考
- 防火墙与安全组配置参考
- 用户认证与HTTPS支持参考
- 日志分析与排错参考
更多推荐
所有评论(0)