Squid代理服务器应用

web代理的工作机制

        缓存网页对象,减少重复请求

代理的基本类型

        传统代理:适用于Internet,需明确指出服务端

        透明代理:客户机不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将web访问重定向给代理服务器处理

使用代理的好处

        提高web访问速度

        隐藏客户机的真实IP地址

实验

        1.基础环境

                关闭防火墙

systemctl stop firewalld
systemctl disable firewalld


                关闭内核安全机制

setenforce 0
sed -i
"S/ASELINUX=.*/SELINUX=disabled/g
/etc/selinux/config


                修改主机名

hostnamectl set-hostname squid
hostnamectl set-hostname web

        2.在web节点部署网站 

                下载hppt服务

yum -y install httpd

                重启服务,设置开机自启动

systemctl start httpd
systemctl enable httpd

        3.在squid节点

                上传软件包(squid-3.5.23.tar.gz)

                下载squid依赖包

yum -y install gcc gcc-* perl
tar zxf squid-3.5.23.tar.gz
cd 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
# --prefix=/usr/local/squid:安装目录
# --sysconfdir=/etc:单独将配置文件修改到其他目录
# --enable-linux-netfilter:使用内核过滤
# --enable-async-io=值:异步I/O, 提升存储性能,相当于“--enable-pthreads --enable-storeio= ufs,aufs --with -pthreads --with-aufs-thread=值”
# --enable-default-err-language=Simplify_Chinese:错误信息的显示语言
# --disable-poll 与--enable-epoll:关闭默认使用 poll 模式,开启 epoll 模式提升性能。
# --enable-gnuregex:使用 GNU 正则表达式
make && make install
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown -R squid:squid /usr/local/squid/var/
vi /etc/squid.conf

                在59行左右添加管理用户和组的配置

cache_effective_user squid
cache_effective_group squid

                在56行设置权限

http_access allow all

                优化最大下载

reply_body_max_size 10 MB

 

                配置完成,检测配置文件是否有误

squid -k parse

                     正确回显应该与下图类似   

        4.启动squid      

squid -z
#等待初始化完成后在squid启动服务
squid

                 过滤端口号3128验证是否启动成功

#关闭
squid -k kill

         使用systemctl管理

vi /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

               给予管理权限

chmod +x /etc/init.d/squid

                添加为系统服务

chkconfig --add /etc/init.d/squid


        5.验证代理是否可以使用
                使用桌面版虚拟机进行验证

#--proxy 指定使用的哪个代理 ,第一个IP地址为部署squid代理的IP地址,第二个IP地址为你要访问哪个IP地址 
curl --proxy 192.168.27.131:3128  192.168.27.129                


                查看前面的IP地址看是否为部署squid代理的IP地址

#查看你访问的IP地址的日志查看回显
 tail -f /var/log/httpd/access_log 

                在宿主机的浏览器上,打开设置,设置代理的地址为squid的IP地址

                在浏览器中访问web服务的IP地址,查看实时日志跟新的内容是否为代理的服务器的IP 

透明代理
        

 实验

        1.基础环境

                关闭防火墙

systemctl stop firewalld
systemctl disable firewalld


                关闭内核安全机制

setenforce 0
sed -i
"S/ASELINUX=.*/SELINUX=disabled/g
/etc/selinux/config


                修改主机名

hostnamectl set-hostname squid
hostnamectl set-hostname web

         2.在web节点部署网站 

                下载hppt服务

yum -y install httpd

                重启服务,设置开机自启动

systemctl start httpd
systemctl enable httpd

        3.在squid节点添加一块网卡,设置为仅主机方式

        4.在新开一台机器,把网络适配器修改为仅主机模式

                设置网关

nmcli con show

#首IP为新开机器的IP,后IP为squid第二网卡的IP。必须保证这俩IP在同一网段中
nmcli con mod ens33 connection.autoconnect yes ipv4.add 192.168.142.131/24 ipv4.gateway 192.168.142.130 ipv4.method man

#重启网卡,激活网卡设置
nmcli con up ens33

                调整内核参数,让路由转发功能生效

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p

        5.在squid节点,上传软件包

                编译安装squid

yum -y install gcc gcc-* perl
tar zxf squid-3.5.23.tar.gz
cd 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
make && make install

# 安装完后,创建链接文件、创建用户和组
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown -R squid:squid /usr/local/squid/var/

                打开配置文件

vi /etc/squid.conf
http_access allow all
http_port 192.168.142.130:3128  transparent
cache_effective_user squid
cache_effective_group squid

                启动服务 

squid -k parse
squid -z
squid
ss -nlpt | grep 3128

                配置转发(编写iptables规则)

#配置的80端口是http协议的
iptables -t nat -A PREROUTING -i ens36 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#配置的443是https协议的
iptables -t nat -A PREROUTING -i ens36 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3128

  5.验证代理是否可以使用
                使用桌面版虚拟机进行验证

curl 192.168.27.129                


                查看前面的IP地址看是否为部署squid代理的IP地址

#查看你访问的IP地址的日志查看回显
 tail -f /var/log/httpd/access_log 

部署tinyproxy 

        1.上传软件包

        2.下载依赖软件包

yum -y install automake gcc
./autogen.sh
./configure
make
make install
vi /usr/local/etc/tinyproxy/tinyproxy.conf

         3.修改配置文件

                 保存退出

touch /var/log/tinyproxy.log
chown nobody:nobody /var/log/tinyproxy.log
cd
tinyproxy
ss -nlpt | grep 8888

git clone https://kkgithub.com/tinyproxy/tinyproxy.git
yum -y install automake gcc
./autogen.sh
./configure
make
make install

# 启动
tinyproxy
# 关闭
pkill tinyproxy

# 配置文件路径
/usr/local/etc/tinyproxy/tinyproxy.conf

# 想允许所有人使用该代理,注释 Allow 选项即可

# 指定LogFile的话,要注意创建文件并且修改文件的归属用户和组
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值