插件窝 干货文章 如何在Linux上设置代理服务器(如Squid)

如何在Linux上设置代理服务器(如Squid)

Squid sudo 配置 bash 278    来源:    2025-04-15

在Linux上设置Squid代理服务器指南

Squid是一个功能强大且广泛使用的开源代理服务器和Web缓存守护程序。以下是详细的安装和配置步骤:

1. 安装Squid

对于基于Debian/Ubuntu的系统:

sudo apt update
sudo apt install squid

对于基于RHEL/CentOS的系统:

sudo yum install squid
# 或对于较新版本
sudo dnf install squid

2. 基本配置

Squid的主配置文件通常位于/etc/squid/squid.conf。在修改前建议备份原始文件:

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

常用配置选项:

  1. 修改监听端口(默认3128):

    http_port 3128
    
  2. 设置访问控制

    acl localnet src 192.168.1.0/24  # 允许的客户端网络
    http_access allow localnet        # 允许该网络访问
    http_access deny all             # 拒绝其他所有访问
    
  3. 启用缓存

    cache_dir ufs /var/spool/squid 100 16 256
    

3. 用户认证设置(可选)

如果需要用户认证,可以配置基本认证:

  1. 安装htpasswd工具(Debian/Ubuntu):

    sudo apt install apache2-utils
    
  2. 创建密码文件:

    sudo htpasswd -c /etc/squid/passwords username
    
  3. 在squid.conf中添加:

    auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
    auth_param basic realm proxy
    acl authenticated proxy_auth REQUIRED
    http_access allow authenticated
    

4. 启动和管理Squid服务

启动Squid:

sudo systemctl start squid

设置开机启动:

sudo systemctl enable squid

检查状态:

sudo systemctl status squid

重新加载配置(无需重启服务):

sudo systemctl reload squid

5. 防火墙配置

如果系统启用了防火墙,需要开放Squid端口(默认3128):

sudo ufw allow 3128
# 或对于firewalld
sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --reload

6. 客户端配置

客户端需要配置使用代理服务器: - 地址:Squid服务器的IP或主机名 - 端口:3128(或你配置的其他端口) - 如果需要认证,提供用户名和密码

7. 日志查看

Squid日志通常位于/var/log/squid/,可以使用以下命令查看:

tail -f /var/log/squid/access.log

高级配置(可选)

  1. 透明代理

    http_port 3128 transparent
    
  2. 限制带宽

    delay_pools 1
    delay_class 1 1
    delay_access 1 allow all
    delay_parameters 1 64000/64000
    
  3. SSL拦截: 需要配置SSL bump功能(注意隐私和法律问题)

故障排除

  1. 检查配置语法:

    sudo squid -k parse
    
  2. 测试配置:

    sudo squid -k check
    
  3. 清除缓存(如有问题):

    sudo squid -k shutdown
    sudo rm -rf /var/spool/squid/*
    sudo squid -z
    sudo systemctl start squid
    

通过以上步骤,你应该能够在Linux系统上成功设置并运行Squid代理服务器。根据你的具体需求,可以进一步调整配置参数。