千家信息网

squid传统代理(附压缩包文件)

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,说明:当客户机通过代理来请求web页面时,指定的代理服务器会先检查自己的缓存,如果缓存中已经有客户机需要访问的页面(红色1 2 3 4),则直接将缓存中的页面内容反馈给客户机;如果缓存中没有客户机需要
千家信息网最后更新 2025年02月05日squid传统代理(附压缩包文件)

说明:
当客户机通过代理来请求web页面时,指定的代理服务器会先检查自己的缓存,如果缓存中已经有客户机需要访问的页面(红色1 2 3 4),则直接将缓存中的页面内容反馈给客户机;如果缓存中没有客户机需要访问的页面(蓝色1 2 3 4),则由代理服务器向Internet发送访问请求,当获得返回的web页面以后,将网页数据保存到缓存中并发送给客户机。使用传统代理的特点在于,客户机的相关程序必须指定代理服务器的地址、端口等基本信息。下面进行传统代理服务器的构建。

.
.
压缩文件包
链接: https://pan.baidu.com/s/1GmD1SCoYeWYFi9W1BG_Z-Q 提取码: kkcn
.
.
拓扑图如下:

.
.
实验环境:

.
.
一、编译安装squid
.
1 . 将压缩包挂载、解压到服务器中,安装编译环境

mkdir /ooo/      #创建挂载目录mount.cifs //192.168.201.1/gx /ooo/    #挂载压缩包cd /ooo/tar zxvf squid-3.5.23.tar.gz -C /opt/      #解压到/opt/yum install gcc gcc-c++ make -y   #安装编译环境


.
.
2 .手工编译安装

./configure --prefix=/usr/local/squid \      #指定安装路径--sysconfdir=/etc \      #配置文件路径--enable-arp-acl \      #mack地址--enable-linux-netfilter \      #内核过滤--enable-linux-tproxy \      #透明模式--enable-async-io=100 \      #io优化--enable-err-language="Simplify_Chinese" \      #报错显示--enable-underscore \      #允许有下划键--enable-poll \      #提升--enable-gnuregex       #支持正则表达式make && make install


.
.
3 . 安装完后,创建链接文件,用户和组

ln -s /usr/local/squid/sbin/* /usr/local/sbin/   #将命令放入系统识别路径下useradd -M -s /sbin/nologin squid   #创建一个用户chown -R squid.squid /usr/local/squid/var/  #更改目录权限


.
.
4 . 修改squid配置文件,初始化缓存目录,启动服务,完成安装

vim /etc/squid.conf# And finally deny all other access to this proxyhttp_access allow all   #允许所有http_access deny all# Squid normally listens to port 3128http_port 3128cache_effective_user squid   #添加 指定程序用户cache_effective_group squid  #添加 指定账号基本组squid -z   #缓存目录初始化squid   #启动服务


.
.
5 .编写启动脚本

cd /etc/init.dvim squid#!/bin/bash#chkconfig: 2345 90 25PID="/usr/local/squid/var/run/squid.pid"CONF="/etc/squid.conf"CMD="/usr/local/squid/sbin/squid"case "$1" in     start)    netstat -natp | grep squid &> /dev/null    if [ $? -eq 0 ]    then      echo "squid is running"      else      echo "正在启动 squid..."      $CMD    fi      ;;      stop)    $CMD -k kill &> /dev/null    rm -rf $PID &> /dev/null      ;;      status)    [ -f $PID ] &> /dev/null      if [ $? -eq 0 ]        then          netstat -natp | grep squid        else          echo "squid is not running"      fi      ;;      restart)    $0 stop &> /dev/null    echo "正在关闭 squid..."      $0 start &> /dev/null    echo "正在启动squid..."      ;;      reload)    $CMD -k reconfigure      ;;      check)    $CMD -k parse      ;;      *)    echo "用法:$0{start|stop|status|reload|check|restart}"      ;;esac


.
.
6 . 添加权限,名称,检查语法

chmod +x squid      #添加执行权限chkconfig --add squid     #添加名称,便于识别service squid check      #检查语法


.
.
二、设置传统代理服务器
.
1 . squid服务器的配置

vim /etc/squid.conf.......http_port 3128cache_mem 64 MB   #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4reply_body_max_size 10 MB   #允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制maximum_object_size 4096 KB   #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户


.
.
2 . 重启服务,清空防火墙

service squid restart   #重启服务iptables -F   #清空防火墙setenforce 0   #关闭增强功能iptables -I INPUT -p tcp --dport 3128 -j ACCEPT    #在input链中,针对tcp协议,目标端口3128,允许转发


传统代理完成
.
.
三、测试传统代理
.
1 . 开启测试端网页

systemctl stop firewalld.servicesetenforce 0     #关闭防火墙yum install httpd -y     #安装httpsystemctl start httpd     #开启服务

.
.
2 .win7端网络设置为NAT模式,用浏览器访问192.168.201.130

.
.
3 .网页端查看访问日志

cd /etc/httpd/logs/vim access_log  #查看访问日志


可以看到来访客户端ip地址
.
.
4 . 此时设置代理访问
打开浏览器-->工具-->intenet选项

.
.
连接-->局域网设置

.
.
设置ip地址与端口

.
.
此时再用浏览器访问192.168.201.130,查看来访日志

可以看到,访问ip是代理服务器的ip地址,传统代理服务器测试成功

0