凌峰创科服务平台

CentOS代理服务器安装步骤详解?

在CentOS系统中安装代理服务器可以通过多种方式实现,常见的代理服务器软件包括Squid、Nginx、TinyProxy等,其中Squid功能强大且配置灵活,适用于大多数场景,以下以Squid为例,详细介绍在CentOS 7/8系统中安装和配置代理服务器的步骤,包括环境准备、软件安装、基础配置、安全设置及测试验证等内容。

CentOS代理服务器安装步骤详解?-图1
(图片来源网络,侵删)

环境准备

在开始安装前,确保系统满足基本要求:CentOS 7/8 minimal版或完整版,建议内存至少1GB,硬盘空间预留500MB以上,确保系统已更新至最新状态,执行以下命令更新系统软件包:

sudo yum update -y

为代理服务器分配静态IP地址,确保网络连通性,若需通过防火墙访问,需提前开放代理服务端口(默认为3128):

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

安装Squid代理服务器

Squid在CentOS官方仓库中可直接安装,执行以下命令完成安装:

sudo yum install -y squid

安装完成后,启动Squid服务并设置开机自启:

CentOS代理服务器安装步骤详解?-图2
(图片来源网络,侵删)
sudo systemctl start squid
sudo systemctl enable squid

检查服务状态,确保运行正常:

sudo systemctl status squid

基础配置

Squid的主配置文件位于/etc/squid/squid.conf,建议先备份原始配置:

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

使用vimnano编辑配置文件,调整以下核心参数:

  1. 监听地址与端口:默认监听所有接口的3128端口,如需限制特定IP,修改http_port参数:
    http_port 192.168.1.100:3128
  2. 访问控制列表(ACL):定义允许访问代理的客户端IP或网段,仅允许内网网段192.168.1.0/24访问:
    acl localnet src 192.168.1.0/24
    http_access allow localnet
    http_access deny all
  3. 缓存设置:根据磁盘空间调整缓存参数,例如禁用缓存(适用于透明代理)或设置缓存目录:
    cache_dir ufs /var/spool/squid 10000 16 256
    cache_mem 256 MB
  4. 日志配置:默认日志位于/var/log/squid/,可调整日志格式和轮转策略。

配置完成后,检查语法错误:

sudo squid -k parse

若无错误,重启Squid服务加载新配置:

sudo systemctl restart squid

安全与高级配置

  1. 用户认证:如需限制用户访问,可配置Basic或Digest认证,首先安装httpd-tools生成密码文件:
    sudo yum install -y httpd-tools
    sudo htpasswd -c /etc/squid/users proxyuser

    squid.conf中添加认证配置:

    auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/users
    auth_param basic realm Proxy Authentication
    acl auth_users proxy_auth REQUIRED
    http_access allow auth_users
  2. 透明代理:通过iptables将客户端流量重定向至Squid端口,需开启系统转发:
    sudo sysctl -w net.ipv4.ip_forward=1
    sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
    sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3128
  3. 日志监控:使用logrotate管理日志文件,防止日志过大,配置文件/etc/logrotate.d/squid默认已包含轮转策略。

测试与验证

  1. 本地测试:在客户端浏览器配置代理服务器地址(IP:3128),访问http://ipinfo.io验证IP是否为代理服务器IP。
  2. 命令行测试:使用curl命令通过代理访问目标网站:
    curl --proxy http://代理服务器IP:3128 http://www.example.com
  3. 日志分析:检查Squid访问日志/var/log/squid/access.log,确认请求记录正常。

常见问题排查

  1. 权限问题:确保Squid进程对缓存目录有读写权限,可通过chown -R squid:squid /var/spool/squid修复。
  2. 端口冲突:若3128端口被占用,修改http_port为其他空闲端口,并更新防火墙规则。

相关问答FAQs

Q1: 如何限制客户端只能访问特定网站?
A: 在squid.conf中使用aclhttp_access规则实现,仅允许访问example.comtest.com

acl allowed_sites dstdomain example.com test.com
http_access allow allowed_sites
http_access deny all

重启Squid服务后,客户端将无法访问其他网站。

Q2: Squid代理服务器如何支持HTTPS流量?
A: Squid默认支持HTTPS代理,但需配置ssl_bump参数进行流量解密,在squid.conf中添加:

ssl_bump stare all
sslproxy_cert_error deny all

同时确保安装了openssl-devel库,并在编译时启用SSL支持,重启服务后,HTTPS流量将通过代理转发。

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