凌峰创科服务平台

CentOS如何搭建HTTP代理服务器?

使用 Squid (功能最强大、最经典)

Squid 是一款非常成熟、功能丰富的开源代理缓存服务器,它不仅支持 HTTP/HTTPS,还支持 FTP、SSL 等多种协议,并带有强大的访问控制、缓存和日志功能,是企业级应用的首选。

CentOS如何搭建HTTP代理服务器?-图1
(图片来源网络,侵删)

安装 Squid

# 更新软件包列表
sudo yum update -y
# 安装 Squid
sudo yum install -y squid

配置 Squid

Squid 的主配置文件是 /etc/squid/squid.conf,在修改前,最好先备份一份。

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

然后使用 vimnano 编辑器打开配置文件:

sudo vim /etc/squid/squid.conf

以下是一些关键的配置项和说明:

  • 设置监听端口和 IP 地址: 默认 Squid 监听所有接口的 3128 端口,你可以修改它。

    CentOS如何搭建HTTP代理服务器?-图2
    (图片来源网络,侵删)
    # 默认配置
    # http_port 3128
    # 修改为只监听内网IP,192.168.1.100 的 3128 端口
    http_port 192.168.1.100:3128
  • 设置允许访问的客户端: 这是至关重要的一步,防止你的代理服务器被滥用,你可以定义一个 ACL (Access Control List) 来指定哪些 IP 或网段可以使用。

    # 允许的客户端IP地址或网段
    acl localnet src 192.168.1.0/24  # 允许 192.168.1.0/24 网段
    acl localhost src 127.0.0.1/255.255.255.255
    acl SSL_ports port 443
    acl Safe_ports port 80      # http
    acl Safe_ports port 443     # https
    acl Safe_ports port 3128    # squid
    # 默认拒绝所有连接
    http_access deny !Safe_ports
    http_access deny all
    # 然后允许我们定义的客户端
    http_access allow localnet
    http_access allow localhost

    注意http_access 规则是按顺序从上到下匹配的,一旦匹配到一条规则,就立即执行并停止后续匹配。deny all 一定要放在最后。

  • 配置缓存 (可选): Squid 的核心功能是缓存,可以加速重复访问的网页。

    # 设置缓存目录大小为 100 GB
    cache_dir ufs /var/spool/squid 100000 16 256

    首次运行时需要创建缓存目录:

    CentOS如何搭建HTTP代理服务器?-图3
    (图片来源网络,侵删)
    sudo squid -zZ
  • 设置代理认证 (可选,但强烈推荐): 为了安全,最好为代理设置用户名和密码。

    1. 安装 apache-tools (它包含了 htpasswd 命令):

      sudo yum install -y httpd-tools
    2. 创建密码文件:

      # 创建一个用户名为 'user1' 的账户
      sudo htpasswd -c /etc/squid/users user1
      # 按提示输入密码
      # 如果要添加更多用户,不要用 -c 参数(-c表示创建新文件)
      # sudo htpasswd /etc/squid/users user2
    3. 修改 squid.conf:

      # 在 http_access 相关配置下添加
      auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/users
      auth_param basic realm Squid Proxy Authentication
      auth_param basic credentialsttl 2 hours
      # 创建一个ACL来匹配认证用户
      auth_acl authenticated proxy_auth REQUIRED
      # 允许认证用户
      http_access allow authenticated
      http_access deny all

启动并设置开机自启

# 启动 Squid 服务
sudo systemctl start squid
# 设置开机自启
sudo systemctl enable squid

检查状态和防火墙

# 检查 Squid 服务状态
sudo systemctl status squid
# 如果防火墙是开启的,需要放行 3128 端口
sudo firewall-cmd --permanent --add-port=3128/tcp
sudo firewall-cmd --reload

客户端使用

  • 浏览器: 在网络设置中,手动配置代理服务器为你的 CentOS 服务器 IP (如 168.1.100),端口为 3128,如果设置了认证,浏览器会弹出用户名和密码输入框。

  • 命令行: 使用 curl 测试。

    # 无认证
    curl -x http://192.168.1.100:3128 http://ipinfo.io
    # 有认证 (需要安装 `nc` 或 `netcat`)
    curl -x http://user1:password@192.168.1.100:3128 http://ipinfo.io

使用 tinyproxy (轻量级、简单)

如果你的需求非常简单,只需要一个基本的、无需缓存的 HTTP 代理,tinyproxy 是一个绝佳的选择,它非常轻量,配置简单,资源占用少。

安装 tinyproxy

sudo yum install -y tinyproxy

配置 tinyproxy

配置文件是 /etc/tinyproxy/tinyproxy.conf

sudo vim /etc/tinyproxy/tinyproxy.conf

关键配置项:

  • 端口:

    Port 8888
  • 允许的客户端:

    # 默认只允许本机连接
    Allow 127.0.0.1
    # 修改为允许你的内网网段,192.168.1.0/24
    Allow 192.168.1.0/24
  • 关闭日志 (可选):

    LogLevel Info

启动并设置开机自启

sudo systemctl start tinyproxy
sudo systemctl enable tinyproxy

检查防火墙

sudo firewall-cmd --permanent --add-port=8888/tcp
sudo firewall-cmd --reload

客户端使用

与 Squid 类似,在浏览器或命令行工具中设置代理 IP 和 8888 端口即可。


使用 Privoxy (注重隐私)

Privoxy 不仅仅是一个代理,它还是一个非缓存网页隐私增强代理,它会过滤网页内容,移除广告、 banners,并且可以修改 HTTP 头部信息来保护你的隐私,它通常与 SOCKS 代理(如 Tor)配合使用。

安装 Privoxy

sudo yum install -y privoxy

配置 Privoxy

配置文件是 /etc/privoxy/config,这个文件非常详细,里面有大量注释。

sudo vim /etc/privoxy/config

关键配置项:

  • 监听地址和端口:

    # 默认只监听 127.0.0.1:8118
    listen-address 127.0.0.1:8118
    # 如果你想让局域网其他设备使用,可以改为你的内网IP
    # listen-address 192.168.1.100:8118
  • 信任的客户端:

    # 默认信任 127.0.0.1
    trust-origin-address 127.0.0.1
    # 如果上面改为了内网IP,这里也需要添加信任的网段
    # trust-origin-address 192.168.1.0/24

启动并设置开机自启

sudo systemctl start privoxy
sudo systemctl enable privoxy

检查防火墙

sudo firewall-cmd --permanent --add-port=8118/tcp
sudo firewall-cmd --reload

客户端使用

客户端需要配置代理为 http://your_centos_ip:8118


总结与选择建议

特性 Squid tinyproxy Privoxy
复杂度
功能 强大 (缓存、ACL、认证、反向代理等) 简单 (基本HTTP转发) 隐私增强 (过滤、修改请求)
资源占用 较高 极低
适用场景 企业、大型网络、需要精细控制 个人使用、轻量级应用、物联网设备 匿名上网、过滤广告、与Tor配合
认证 支持 不支持 (需配合其他方式) 不支持 (需配合其他方式)

如何选择?

  • 如果你是新手,只需要一个简单的代理让局域网设备上网:选择 tinyproxy,配置最简单,几分钟就能搞定。
  • 如果你需要企业级的功能,如访问控制、认证、缓存、反向代理等:选择 Squid,它是行业标准,功能最全面。
  • 如果你主要关注隐私,想过滤广告和跟踪脚本,或者想作为 Tor 的入口点:选择 Privoxy

希望这份详细的指南能帮助你在 CentOS 上成功搭建 HTTP 代理服务器!

分享:
扫描分享到社交APP
上一篇
下一篇