文章目录

  • 一、缓存代理概述
  • 二、实验:使用Squid实现传统代理与透明代理
    • ①实验一:传统代理
    • ②试验二:透明代理

一、缓存代理概述

(一)代理的基本类型

  • 传统代理:适用于Internet,需明确指定服务端
  • 透明代理:客户机不需指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理

(二)使用代理的好处

  • 提高Web访问速度
  • 隐藏客户机的真实IP地址

二、实验:使用Squid实现传统代理与透明代理

  • 实验环境:VMware Workstation 15.5、Xshell 6、Centos7.6、squid-3.4.6.tar
  • 服务器IP地址规划
设备名称及用途 IP地址
Squid代理服务器 192.168.50.134
Web服务器 192.168.50.135
客户机 192.168.50.128
  • 本实验所需软件包(squid)下载地址:https://wwa.lanzous.com/i4zX0ge8rch
  • 实验步骤

①实验一:传统代理

1、安装编译环境

yum -y install gcc gcc-c++

2、解压缩软件包进行配置

tar zxvf squid-3.4.6.tar.gz      ## 解压缩软件包cd squid-3.4.6/     ## 进入解压缩人的软件目录./configure --prefix=/usr/local/squid \         ## 指定安装路径
--sysconfdir=/etc \                             ## 配置文件所在目录
--enable-arp-acl \                              ## 启用ACL访问控制列表功能
--enable-linux-netfilter \                   ## 启用内核过滤功能
--enable-linux-tproxy \                  ## 开启透明模式
--enable-async-io=100 \                ## 对于IO优化
--enable-err-language="Simplify_Chinese" \        ## 报错提示语言为简体中文
--enable-underscore \           ## 在URL中支持下划线
--enable-poll \                 ## 功能提升
--enable-gnuregex               ## 支持正则表达式

3、进行编译和安装

make && make install

4、让软件命令能被系统所识别

ln -s /usr/local/squid/sbin/* /usr/local/sbin

5、创建程序用户

useradd -M -s /sbin/nologin squid

6、为工作目录赋予权限

chown -R squid.squid /usr/local/squid/var/

7、编辑并修改squid配置文件

vim /etc/squid.conf将这一行 http_access deny all 中的deny改为allow即可在这一行“# Squid normally listens to port 3128”下面添加两行内容:
cache_effective_user squid       ## 添加指定程序用户
cache_effective_group squid    ## 添加指定账号基本组

8、修改完成后使用命令检查配置文件语法

squid -k parse

9、初始化缓存目录

squid -z

10、启动服务

squid

11、创建squid服务启动脚本并设置为开机自启动

cd /etc/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" instart)netstat -natp | grep squid & > /dev/nullif [ $? -eq 0 ];thenecho "squid is running"elseecho "正在启动 squid..."$CMDfi;;stop)$CMD -k kill & > /dev/nullrm -rf $PID & > /dev/null;;status)[ -f $PID ] & > /dev/nullif [ $? -eq 0 ];thennetstat -natp | grep squidelseecho "squid is not running"fi;;restart)$0 stop & > /dev/nullecho "正在关闭 squid..."$0 start & > /dev/nullecho "正在启动 squid...";;reload)$CMD -k reconfigure;;check)$CMD -k parse;;*)echo "用法:$0{start|stop|status|reload|check|restart}";;
esacchmod +x squid         ## 为启动脚本添加执行权限
chkconfig --add squid       ## 将服务添加到系统服务管理中
chkconfig --level 35 squid on    ## 设置为开机自启动

12、编辑squid配置文件并进行配置

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

13、关闭squid代理服务器的清空防火墙规则

iptables -F
setenforce 0

14、设置防火墙规则

iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

15、启动squid服务

service squid reload

16、在Web服务器上安装并开启http服务

yum -y install httpd    ## 安装http服务同样也要清空防火墙规则:
iptables -F
setenforce 0

17、打开客户端浏览器,这里使用的是Chrome浏览器,在地址栏中输入192.168.50.134进行访问,接着回到web服务器端查看访问日志,可以看出是IP为128的设备进行了访问

现在来配置代理服务,打开浏览器的设置,选择“系统”,再选择“打开您计算机代理设置”,在弹出的对话框中输入squid服务器的IP和端口3128,单击“保存”即可设置完成



设置完成后,清除缓存记录并重启浏览器再次访问,回到服务器端查看日志,可以看到显示的IP已经是squid服务器的地址了

②试验二:透明代理

  • 实验准备

    1.将三台设备(squid代理服务器、Web服务器、客户机)的网卡均设置为仅主机模式

    2.为squid服务器添加一块网卡ens36,同样设置为仅主机模式

    3.IP地址规划:squid服务器:内网(ens33:192.168.50.134)、外网(ens36:192.168.100.1)

  • 实验步骤

1、配置双网卡:内网(ens33:192.168.50.134)、外网(ens36:192.168.100.1)

cd /etc/sysconfig/network-scripts/
cp -p ifcfg-ens33 ifcfg-ens36    ## 拷贝一ens33的网卡并重命名为ens36分配编辑ens33与ens36网卡,配置文件如下:
【ens33】
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=bf59517c-d7a2-4f8c-a855-c297305b3c73
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.50.134
NETMASK=255.255.255.0
GATEWAY=192.168.50.2【ens36】
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.100.1
NETMASK=255.255.255.0service network restart    ## 重启网卡

2、开启流量转发

vim /etc/sysctl.conf    ## 编辑配置文件
net.ipv4.ip_forward=1   ## 添加转发规则
sysctl -p               ## 使配置立即生效

3、配置透明代理

vim /etc/squid.conf    ## 编辑配置文件修改 http_port 3128 为 http_port 192.168.100.1:3128 transparent

4、配置防火墙转发规则

iptables -t nat -I PREROUTING -i ens36 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
iptables -t nat -I PREROUTING -i ens36 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT       ## 如果第一个实验没有做则需要这一条命令

5、重载squid服务配置文件

service squid reload

6、打开客户机上的浏览器,清除缓存后重启,再次访问192.168.50.135(Web服务器),然后查看http服务日志,可以看到访问地址为ens33网卡IP

Squid代理服务器及配置相关推荐

  1. Sun Solaris 9 下Squid 代理服务器的配置笔记

    Sun Solaris 9 下Squid 代理服务器的配置也包括DNS域名解析服务器的配置. 一. squid 的工作是建立在 DNS 的服务之上的, 所以首先要配置好你的DNS服务,方可进行squi ...

  2. Squid代理服务器基本配置(三)

    建立账户文件 为了建立供用户认证使用的账户文件,可以利用 Apache 的 htpasswd 程序生成账户文 件 /etc/squid/ passwd ,该账户文件每行包含一个用户的信息,即用户名和经 ...

  3. Linux上常用的安全技术iptables与squid代理服务器

    一.iptables 指令语法 iptables [-t table] command [match] [-j target/jump] [-t table] 指定规则表 -t 参数用来,内建的规则表 ...

  4. 万字长文带你了解最常用的开源 Squid 代理服务器

    作者:JackTian 微信公众号:杰哥的IT之旅(ID:Jake_Internet) 一.Squid 是什么? Squid:是一个高性能的代理缓存服务器,Squid 支持 FTP.gopher.HT ...

  5. 部署Squid 代理服务器(内含传统、透明代理服务器的配置、ACL访问控制、日志分析、反向代理)

    标题 一.Squid 代理服务器 代理的工作机制 Squid 代理的类型 二.安装 Squid 服务 1.编译安装 Squid 2.修改 Squid 的配置文件 3.Squid 的运行控制 4.创建 ...

  6. 也说linux使用squid和squidGuard配置代理服务器

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://netdl.blog.51cto.com/184762/33118 http:// ...

  7. squid和squidGuard配置代理服务器

    http://wiki.ubuntu.org.cn/Squid http://www.kuqin.com/topics/Squid.html 前言: http://proxy.blog.51cto.c ...

  8. linux下用squid和squidGuard配置代理服务器

    网上有不少在linux中使用squid和squidGuard配置代理服务器的文章,这几天一直在搞这么个东东网上的资料也看了不少总是觉的和自己设置的不一样.就把我自己写的发上来.大家可以参考也给自己留个 ...

  9. Squid代理服务器的安装与配置 CentOS

     Squid代理服务器的安装与配置 CentOS 转自:http://www.cnblogs.com/mchina/p/3812190.html 一.简介 代理服务器英文全称是Proxy Serv ...

最新文章

  1. Ubuntu--开启TELNET服务
  2. 【 Verilog HDL 】循环语句总结
  3. CSS 解决td里面内容太多把表格弄变形的原因,设置 自动换行。
  4. GC DevKit 快速入门 -- 游戏概览(三)
  5. mysql优化之--skip-name-resolve
  6. WPF的Clipboard.SetText()有问题
  7. malloc线程安全
  8. 8086CPU常见汇编指令、debug命令
  9. 用java爬虫来提高CSDN博客访问量,浏览量
  10. php根据指定字段去重,php二维数组根据某个字段去重
  11. 小杜机器人线下店_打通线上线下渠道 九号机器人新零售模式成型
  12. Keras深度学习实战(3)——神经网络性能优化技术详解
  13. 数据提取、转换和加载 - ETL工具
  14. 【图像去噪】基于matlab GUI均值+中值滤波图像去噪【含Matlab源码 372期】
  15. 网件6250刷Tomato 系统
  16. 笔记本锁定计算机功能键,笔记本电脑键盘锁定键是哪个
  17. 二进制转8421bcd码_码制 || BCD码 || 格雷码 || 奇偶校验码 || 字母数字码 || 数电
  18. 微信支付分700分,有什么好处?
  19. 《用递归法解决问题》教学设计
  20. linux如何启动网络配置文件,linux系统的网络配置教程 Ubuntu系统网络设置方法网络配置linux及Ubuntu通过修改配置文件进行网络配置...

热门文章

  1. Blurry Box加密技术使用的7种方法
  2. 4.2 Pollard p-1算法
  3. 二维码支付的优势与劣势
  4. 移动安全技术如何未雨绸缪?
  5. matlab中的regress函数总结
  6. pca , nmds , pcoa 图添加分组的椭圆
  7. 删除控制文件中的磁带备份信息
  8. 《生活,是很好玩的》读书日记
  9. WebRTC -- 添加选择音频输入输出设备功能
  10. 爬虫基础知识记录の二