第十三章 Squid代理服务器 传统代理服务器

代理的基本类型

根据实现方式不同,代理服务可分为传统代理和透明代理两种常见的代理服务。

传统代理:也就是普通的代理服务.首先必须在客户机的浏览器.QQ聊天工具、下载软件等程序中手动设置代理服务器的地址和端口,然后才能使用代理来访问网络。对于网页浏览器,访问网站时的域名解析请求也会发给指定的代理服务器。

透明代理:提供与传统代理相同的功能和服务,其区别在于客户机不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向,实际仍然交给代理服务器来处理。重定向的过程对客户机来说是“透明”的,用户甚至并不知道自己在使用代理服务.所以称为透明代理。使用透明代理时,网页浏览器访问网站时的域名解析请求将优先发给DNS服务器。

去ftp 下载 squid-3.5.23.tar.gz 

----------------------------------------------------------------------------------------------------------------------------

编译安装Squid

 配置Squid的编译选项时.将安装目录设为/usr /local/squid,其他具体选项根据实际需要来定.配置前可参考“ ./configure --help”给出的说明。

[root@Linux01 ~]# tar zxf squid-3.5.23.tar.gz 

[root@Linux01 ~]# cd squid-3.5.23/

[root@Linux01 squid-3.5.23]# ./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


[root@Linux01 ~]# make

[root@Linux01 ~]# make install

____________________________________________________________________________

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

[root@Linux01 squid-3.5.23]# ln -s /usr/local/squid/sbin//* /usr/local/sbin/

[root@Linux01 squid-3.5.23]# useradd -M -s /sbin/nologin squid

[root@Linux01 squid-3.5.23]# chown -R squid:squid /usr/local/squid/var/

———————————————————————————————————————————

Squid的配置文件

Squid服务的配置文件位于/etc/squid , conf,充分了解配置行的作用将有助于管理员根据实际情况灵活配置代理服务。

[root@Linux01 squid-3.5.23]# vim /etc/squid.conf


cache_effective_user squid
cache_effective_group squid

———————————————————————————————————————————

检查配置文件语法是否正确
[root@Linux01 squid-3.5.23]# cd
[root@Linux01 ~]# squid -k parse

———————————————————————————————————————————

启动、停止 Squid

第一次启动Squid服务时,会自动初始化缓存目录。在没有可用的Squid 服务脚本的情况下,也可以直接调用Squid程序来启动服务,这时需要先进行初始化。


[root@Linux01 ~]# squid -z    //-z选项用来初始化缓存目录

[root@Linux01 ~]# squid     //启动 squid 服务

————————————————————————————————————————

确认 Squid 服务处于正常监听状态

——————————————————————————————————————————使用Squid 服务脚本

为了使Squid服务的启动.停止.重载等操作更加方便.可以编写Squid服务脚本,并使用chkconfig和systemctl工具来进行管理。

[root@Linux01 ~]# vim /etc/init.d/squid




#!/bin/bash
# chkconfig: 2345 90 25
# config: /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
  ;;
  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}"
  ;;
esac
[root@Linux01 ~]# chmod +x /etc/init.d/squid     //给它一个权限

[root@Linux01 ~]# chkconfig --add squid     //添加为系统服务

[root@Linux01 ~]# systemctl restart squid

这样一来,就可以通过Squid 脚本来启动、停止.重启.重载Squid服务器了.方法是在执行/etc/init , d/squid脚本时添加相应的start、 stop、restart 参数或通过systermctl 命令控制Squid服务。

____________________________________________________________________________

测试 PC 配置

 结果

  • 29
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值