squid服务

实验环境

三台虚拟机:
squid,DL服务器:20.0.0.50
web服务器:20.0.0.60
win10客户机(传统模式):20.0.0.11
win10客户机(透明模式):192.168.10.10

实验步骤

[root@squid opt]# tar zxvf squid-3.4.6. tar. gz
[root@squid opt]# cd /squid-3.4.6
[root@squid squid-3.4.6]# ./configure --prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tproxy \
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \
--enable-poll \
--enable-gnuregex

[root@squid squid-3.4.6]# make && make install

[root@squid squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/
[root@squid squid-3.4.6]# useradd -M -s /sbin/nologin squid
[root@squid squid-3.4.6]# chown -R squid.squid /usr/local/squid/var/

[root@squid squid-3.4.6]# vim /etc/squid.conf
56行 http_access allow all
57行 #http_access deny all
61行 cache_effective_user squid
62行 cache_effective_group squid

cache_effective_user squid   #添加指定程序用户
cache_effective_group squid   #添加指定账号基木组

[root@squid squid-3.4.6]# squid -k parse   //检查配置文件语法
[root@squid squid-3.4.6]# squid -z    //初始化缓存目录
[root@squid squid-3.4.6]# squid   //启动服务

[root@squid squid-3.4.6]# cd /etc/init.d/
[root@squid init.d]# vim squid

#!/bin/bash
#chkconfig: 2345 90 25
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|status|reload|check|restart}"
  ;;
esac

[root@squid init.d]# chmod +x squid 
[root@squid init.d]# chkconfig --add squid 
[root@squid init.d]# chkconfig --level 35 squid on

传统DL服务器

#########################传统DL服务器#########################
[root@squid init.d]# vim /etc/squid.conf
##前面三个我们是已经有的
##直接在端口下面加上后面三行
52行  http_access allow all
53行  http_access deny all
60行  http_port 3128
cache_mem 64 MB
reply_body_max_size 10 MB
maximum_object_size 4096 KB
-----------------------------------------------------------------------
cache_mem 64 MB		#指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位MB
reply_body_max_size 10 MB	#允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制
maximum_object_size 4096 KB	#允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转到用户端
------------------------------------------------------------------------


[root@squid init.d]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
##设置防火墙规则 指定规则链-I INPUT(规则链要大写) -p tcp(指定跑的协议) -dport 3128(指定端口) -j ACCEPT(指定操作)
[root@squid init.d]# service squid reload



20.0.0.60 web服务器:
[root@web ~]# yum -y install httpd
在windows系统中开启浏览器访问HTTP服务器
[root@web ~]# cat /var/log/httpd/access_log
查看web服务器访问日志access.log是Windows地址访问的

点击浏览器的设置-->高级-->系统-->打开您计算机的DL设置-->手动设置DL-->输入DL服务器的IP和端口3128-->保存

[root@web ~]# cat /var/log/httpd/access_log
查看web服务器访问日志access.log是DL服务器地址访问的

透明DL服务器

##############################设置透明代理#########################
20.0.0.50
配置双网卡,ens36设置为仅主机模式
[root@squid opt]# cd /etc/sysconfig/network-scripts/
[root@squid network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@squid network-scripts]# vim ifcfg-ens36
把名字从ens33改成ens36
删除UUID
IP地址设置为192.168.10.1
子网掩码255.255.255.0
不要网关
不要DNS
[root@squid network-scripts]# systemctl restart network

做路由转发
[root@squid network-scripts]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1

[root@squid network-scripts]# sysctl -p
################
20.0.0.60 web服务器
[root@web ~]# route add -net 192.168.10.0/24 gw 20.0.0.50

######
开一台win10虚拟机网络适配器选择仅主机模式IP设置为192.168.10.10


##############
20.0.0.50 squid,DL服务器
[root@squid ~]# vim /etc/squid.conf
http_port 192.168.100.1:3128 transparent
[root@squid ~]# service squid re1oad

[root@squid ~]# iptables -F
[root@squid ~]# iptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
[root@squid ~]# iptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
[root@squid ~]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

win10虚拟机(如果之前做了传统模式先把DL服务关闭然后)访问web服务器20.0.0.60,多刷新几次
然后去web服务器
[root@web ~]# cd /var/log/httpd/

[root@web httpd]# cat access_log

会发现访问日志都是20.0.0.50的squid,DL服务器访问的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值