欢迎光临散文网 会员登陆 & 注册

安装Squid代理服务及构建传统代理

2021-11-02 11:34 作者:Vecloud_  | 我要投稿


博文大纲 
一、Squid服务概述 
二、安装及运行控制 
一、Squid服务概述作为应用层的代理服务软件,Squid主要提供缓存加速、应用层过滤控制的功能。 
1、代理的工作机制当客户机通过代理来请求Web页面时,指定的代理服务器会先检查自己的缓存,如果缓存中已经有客户机需要的页面,则直接将缓存中的页面内容反馈给客户机;如果缓存中没有客户机要访问的页面,则由代理服务器向Internet发送访问请求,获得返回的Web页面以后,将网页数据保存到缓存中并发送给客户机,如下图所示: 

由于客户机的web访问请求实际上是squid代理服务器来代替完成的,从而可以隐藏了用户的真实IP地址,起到一定的保护作用。另一方面,squid也可以针对要访问的目标、客户机的地址、访问的时间段进行过滤控制。 
2、代理的基本类型传统代理:也就是普通的代理服务,需要我们客户端在浏览器、聊天工具等一些程序中设置代理服务器的地址和端口,然后才能使用代理来访问网络,这种方式相比较而言比较麻烦,因为客户机还需手动指定代理服务器,所以一般用于Internet环境。 
透明代理:与传统代理实现的功能是一样的,区别在于客户机不需要手动指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将web访问重定向,实际上仍然交给代理服务器来处理,重定向的过程完全是由squid服务器进行的,所以对于客户机来说,甚至不知道自己使用了squid代理服务,因此呢,我们称之为透明模式。透明代理多用于局域网环境,如在Linux网关中启用透明代理后,局域网主机无须进行额外设置就能享受更好的上网速度。 
二、安装及运行控制所需设备: 
Windows客户端一台;IP地址:192.168.100.102linux客户端一台;IP地址:192.168.100.10squid服务器一台; IP地址:192.168.100.20web服务器一台;IP地址:192.168.100.30所需的镜像请访问:https://pan.baidu.com/s/1-3jN_z-JqWg2X1Bpz0SHUw 
提取码:ysxn 
1、安装httpd[root@centos03 ~]# yum -y install httpd    <!--安装httpd服务-->[root@centos03 ~]# cd /var/www/html/        <!--修改网站主页的内容-->[root@centos03 html]# ls -a.  ..  [root@centos03 html]# echo "www.accp.com" > index.html       <!--插入数据-->[root@centos03 ~]# systemctl start httpd           <!--启动httpd服务-->[root@centos03 ~]# systemctl enable httpd        <!--设置开机自动启动-->2、安装linux命令行客户机[root@centos01 ~]# yum -y install elinks           <!--安装elinks软件,linux操作系统光盘自动此软件包-->[root@centos01 ~]# elinks http://192.168.100.30  <!--访问网站服务器是否可以访问到--> 
3、编译安装Squid[root@centos02 ~]# mount /dev/cdrom /mnt/  <!--挂载linux光盘-->[root@centos02 ~]# tar zxvf /mnt/squid-3.4.6.tar.gz -C /usr/src/           <!--解压缩squid软件包到/usr/src/目录-->[root@centos02 squid-3.4.6]# ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-linux-netfilter --enable-async-io=240 --enable-default-err-language-Simplify_Chinese --disable-poll --enable-epoll --enable-gnuregex  <!--配置squid-->[root@centos02 squid-3.4.6]# make && make install <!--编译安装squid-->上述配置项的具体作用如下: 
--prefix=/usr/local/squid :指定安装目录;--sysconfdir=/etc :单独将配置文件修改到其他目录;--enable-linux-netfilter:使用内核过滤;--enable-async-io=值:异步I/O,提升存储性能;--enable-default-err-language=Simplify_Chinese :错误信息显示语言;--disable-poll 与--enable-epoll:关闭默认使用poll模式,开启epoll模式提提升性能;--enable-gunregex:使用GUN正则表达式; 
更多的配置项可以参考“./configure --help”;安装完成后,创建链接文件、创建用户和组 
[root@centos02 ~]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/[root@centos02 ~]# useradd -M -s /sbin/nologin squid [root@centos02 ~]# chown -R squid:squid /usr/local/squid/var/ 4、修改squid主配置文件 
[root@centos02 ~]# vim /etc/squid.conf  <!--编辑squid主配置文件-->54 http_access allow all          <!--允许所有人访问squid-->60 http_port 3128            <!--squid监听的端口号-->61 cache_effective_user squid      <!--管理squid的账户-->62 cache_effective_group squid      <!--管理squid的组-->63 reply_body_max_size 10 MB <!--允许用户下载最大数据10M-->68 coredump_dir /usr/local/squid/var/cache/squid  <!--设置缓存位置-->[root@centos02 ~]# squid -k parse <!--检查配置文件语法是否错误-->5、创建squid管理服务脚本[root@centos02 ~]# vim /etc/init.d/squid     <!--为了方便控制服务,编写一个squid服务脚本,并添加为系统服务, 脚本如下-->#!/bin/bash# chkconfig: 35 90 25# config file:/etc/squid.conf# pidfile: /usr/local/squid/var/run/squid.pid# Description: Squid - Internet object cache.PID="/usr/local/squid/var/run/squid.pid"CONF="/etc/squid.conf"CMD="/usr/local/squid/sbin/squid"case "$1" in  start)        netstat -anpt | 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        echo "正在关闭squid...";;  status)     [ -f $PID ] &> /dev/null        if [ $? -eq 0 ]           then     netstat -anpt | 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|restart|reload|check|status}"exit 1;;esac[root@centos02 ~]# chmod +x /etc/init.d/squid  <!--脚本添加执行权限-->[root@centos02 ~]# chkconfig --add squid    <!--添加系统服务-->[root@centos02 ~]# chkconfig --level 35 squid on   <!--设置开机自动启动-->[root@centos02 ~]# /etc/init.d/squid start    <!--启动squid服务-->正在启动squid...现在基于传统代理的squid代理服务器已经配置完成了 
6、Linux客户端命令行使用代理服务器[root@centos01 ~]# vim /etc/profileHTTP_PROXY=http://192.168.100.20:3128  <!--为使用HTTP协议指定代理-->HTTPS_PROXY=http://192.168.100.20:3128  <!--为使用HTTPS协议指定代理-->FTP_PROXY=http://192.168.100.20:3128   <!--为使用FTP协议指定代理-->NO_PROXY=192.168.10.,192.168.20.   <!--对两个局域网段不使用代理-->export HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY [root@centos01 ~]# source /etc/profile    <!--应用代理-->[root@centos01 ~]# elinks http://192.168.100.30   <!--客户端访问网站服务器-->[root@centos03 ~]# tail -f /var/log/httpd/access_log                               <!--网站服务器追踪squid代理服务器的访问日志文件-->                                                    <!--请注意,所有跟踪都是在访问之前先做好准备的-->192.168.100.20 - - [18/Nov/2019:04:38:40 +0800] "GET / HTTP/1.1" 200 13 "-" "ELinks/0.12pre6 (textmode; Linux; 80x18-2)"7、Windows客户机使用代理服务器1)网卡更换成同一块网卡 
2)配置同网段IP地址 
3)配置代理服务器IP地址和端口号 

4)访问192.168.100.30测试是否成功 
5)网站服务器追踪squid代理服务器的访问日志文件[root@centos03 ~]# tail -f /var/log/httpd/access_log                                               <!--请注意,所有跟踪都是在访问之前先做好准备的-->192.168.100.20 - - [18/Nov/2019:04:38:40 +0800] "GET / HTTP/1.1" 200 13 "-" "ELinks/0.12pre6 (textmode; Linux; 80x18-2)"192.168.100.20 - - [18/Nov/2019:05:18:03 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"

了解更多网络知识关注:http://www.vecloud.com/

安装Squid代理服务及构建传统代理的评论 (共 条)

分享到微博请遵守国家法律