在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验证配置。

七、性能优化建议

  1. 缓存调优
    cache_mem 256 MB        # 内存缓存大小
    maximum_object_size 100 MB  # 允许缓存的最大文件
    
  2. 启用异步IO
    cache_dir ufs /var/spool/squid 1000 16 256  # 增大缓存目录
    
  3. 限制带宽
    delay_pools 1
    delay_class 1 1
    delay_parameters 1 16000/16000  # 限制每秒16KB
    

引用来源

  • 安装与基础配置参考
  • 防火墙与安全组配置参考
  • 用户认证与HTTPS支持参考
  • 日志分析与排错参考

更多推荐