文章目录

  • 一、Squid代理服务器
    • 1.web代理的工作机制
    • 2.代理的基本类型
      • ①传统代理
      • ②透明代理
      • ③反向代理
    • 3.使用代理的好处
  • 二、安装squid服务
    • 1.编译安装squid
    • 2.修改squid的配置文件
    • 3.squied的允许控制
    • 4.创建 Squid 服务脚本
  • 三、构建传统代理服务器
    • 1.项目环境配置
    • 2.构建步骤
      • ①squid-server
      • ②客户机的代理配置
      • ③web1
      • ④测试
  • 四、构建透明代理服务器
    • 1.环境配置
    • 2.构建步骤
      • ①web
      • ②squid
      • ③客户机测试
      • ④查看访问日志
      • ④查看访问日志

一、Squid代理服务器

Squid主要提供缓存加速、应用层过滤控制的功能

1.web代理的工作机制

  • 代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址
  • 将获得的网页数据(静态 web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应(缓存网页对象,减少重复请求)

2.代理的基本类型

①传统代理

  • 适用于Internet
  • 需在客户机明确指定代理服务器的地址和端口

②透明代理

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

③反向代理

  • 如果squid反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端
  • 否则反向代理服务器将后台的web服务器请求资源,然后将请求的应答返回给客户端
  • 同时也将该应答缓存在本地,共下一个请求者使用

3.使用代理的好处

提高web访问速度

隐藏客户机的真实IP地址

二、安装squid服务

1.编译安装squid

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#关闭防火墙(关闭开启自启)及安装访问控制机制yum -y install gcc gcc-c++ make
#安装 gcc gcc-c++ 及编译器以编译环境
#CentOS 7 系统时默认已安装的tar zxvf squid-3.5.28.tar.gz -C /opt/
#gz 格式使用 zxvf 进行解压缩cd /opt/squid-3.5.28
#进入解压完后的目录
./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
make -j 4 && make install
#编译过程时间较长ln -s /usr/local/squid/sbin/* /usr/local/sbin/useradd -M -s /sbin/nologin squidchown -R squid:squid /usr/local/squid/var/#创建软链接至路径环境变量,方便系统识别 squid 的系统命令
#创建程序用户 squid,保证系统安全性
#为 /usr/local/squid/var 目录递归指定属主属组

2.修改squid的配置文件

vim /etc/squid.conf
...
...
#56行,插入
http_access allow all
#放在 http_access deny all 之前,允许任意客户机使用代理服务
http_access deny all
...
http_port 3128
#用来指定代理服务监听的地址和端口(默认的端口号为 3128)
#61行,插入
cache_effective_user squid
#添加指定程序用户,用来设置初始化、运行时缓存的账号,否则启动不成功
cache_effective_group squid
#添加指定账号基本组
...
coredump_dir /usr/local/squid/var/cache/squid
#指定缓存文件目录,这里是我们刚递归更改属主属组的路径地址

3.squied的允许控制

squid -k parse
#检查配置文件语法是否正确squid –z
#-z 选项用来初始化缓存目录squid
#启动 squid 服务netstat -anpt | grep "squid"
#squdi 端口号为 tcp 3128

4.创建 Squid 服务脚本

vim /etc/init.d/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}";;
esac

小知识:
2345 是默认自启动级别,90 是启动优先级,25 是停止优先级,优先级范围是 0~100,数字越大,优先级越低

chmod +x /etc/init.d/squid
chkconfig --add squid
chkconfig --level 35 squid on

三、构建传统代理服务器

1.项目环境配置

主机 主机名 操作系统 IP 地址 主要软件
Squid-Server CentOS 7-5 CentOS 7 192.168.126.15 squid-3.5.28.tar.gz
Web CentOS 7-4 CentOS 7 192.168.126.14 httpd
客户端 Win10 Windows 192.168.126.10 /

2.构建步骤

①squid-server

vim /etc/squid.conf
......
http_access allow all
http_access deny all
http_port 3128
cache_effective_user squid
cache_effective_group squid#63行,插入
cache_mem 64 MB
#指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
reply_body_max_size 10 MB
#允许用户下载的最大文件大小,以字节为单位,当下载超过指定大小的Web对象时,浏览器的报错页面中会出现“请求或访问太大”的提示默认设置0表示不进行限制
maximum_object_size 4096 KB
#允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户service squid restart
或
systemctl restart squid
#重启服务以使配置生效netstat -natp | grep squid
#确认是否启动成功

生产环境中还需要修改防火墙规则:

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

②客户机的代理配置

  • 配置客户端(win10)的IP地址

  • 打开浏览器,配置代理功能

③web1

注:这里是第二台Linux(web)了

systemctl stop firewalld
systemctl disable firewalld
setenforce 0yum -y install httpd
#用 YUM 安装 apache httpd 服务systemctl start httpd
#开启服务并确认端口是否已启动
netstat -natp | grep 80

④测试

在浏览器输入 Web 服务器 IP 地址进行访问

  • 查看web1访问日志的新增记录
tail -f /var/log/httpd/access_log

四、构建透明代理服务器

1.环境配置

主机 主机名 操作系统 IP 地址 主要软件
Squid-Server CentOS 7-5 CentOS 7 ens33:192.168.126.15、ens36:12.0.0.1 squid-3.5.28.tar.gz
Web1 CentOS 7-4 CentOS 7 12.0.0.12 httpd
客户端 Win10 Windows 192.168.126.10 /

2.构建步骤

①web

systemctl stop firewalld
systemctl disable firewalld
setenforce 0vim /etc/sysconfig/network-scripts/ifcfg-ens33
#修改网卡配置中的 IP、子网掩码及网关systemctl restart network
#注,重启后,远程终端将连接不上,需回到 VMware
ifconfig

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vg14bCYs-1635939105465)(http://jyj199592.oss-cn-beijing.aliyuncs.com/blog/20211103/184910008.png)]

yum -y install httpd
systemctl restart httpd.service

②squid

#关机状态下,添加一块网卡,然后再开机cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36vim ifcfg-ens33
vim ifcfg-ens36
#具体配置我下面贴图展示systemctl restart network
ifconfig

  • 添加提供内网服务的IP地址,和支持透明代理选项 transparent
#60行,修改
vim /etc/squid.conf
......
http_access allow all
http_access deny allhttp_port 192.168.184.15:3128 transparentsystemctl restart squid
netstat -anpt | grep "squid"

#开启路由转发
#实现本机中不同网段的地址转发echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
#修改防火墙规则
iptables -F
iptables -t nat -F
iptables -t nat -I PREROUTING -i ens33 -s 192.168.126.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
iptables -t nat -I PREROUTING -i ens33 -s 192.168.126.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

③客户机测试

  • 首先关闭之前设置的代理服务器功能
  • 修改默认网关为代理服务器 ens33 的网卡 IP

④查看访问日志

  • 查看 Squid 访问日志的新增记录
tail -f /usr/local/squid/var/logs/access.log
#Squid 代理服务器能检测到客户机访问目标网站的记录
#需要前往客户机访问几次再回来查看,就能很明显的看到新增记录了

  • 首先关闭之前设置的代理服务器功能
  • 修改默认网关为代理服务器 ens33 的网卡 IP

[外链图片转存中…(img-CHD19cIc-1635939105468)]

[外链图片转存中…(img-irjq5F2H-1635939105469)]

[外链图片转存中…(img-EojFM159-1635939105469)]

④查看访问日志

  • 查看 Squid 访问日志的新增记录
tail -f /usr/local/squid/var/logs/access.log
#Squid 代理服务器能检测到客户机访问目标网站的记录
#需要前往客户机访问几次再回来查看,就能很明显的看到新增记录了

Squid 代理服务器应用相关推荐

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

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

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

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

  3. CentOS下搭建Squid代理服务器

    "量子扰动超导探测器.战争期间用它搜索潜艇,寻找敌人的赛伯武器系统." "哦?海军的玩意儿?打仗的时候用过?这么说,乌贼能读出你大脑芯片上储存的东西?"她停住脚 ...

  4. Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR 请求头

    本实验操作系统选用 CentOS release 5.6 (Final) 实验目的实现 Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR  请求头 .使其显示任意IP 过 ...

  5. Squid 代理服务器应用大全

    文章目录 一.Squid 服务基础 1.1 缓存代理概述 (一) 代理的工作机制 (二)代理的基本类型 1.2 编译安装及运行步骤(理论) 1.编译安装Squid(将所需的包上传到/opt目录下) 2 ...

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

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

  7. 搭建Linux安全的Squid代理服务器

    本文介绍Linux下非常著名.常用的Squid代理服务器的使用,并着重讲述如何使用其提供的访问控制策略,来保证代理服务器的合法使用. 代理服务器的功能是代理网络用户取得网络信息,它 是网络信息的中转站 ...

  8. squid代理服务器详解

    本文出处不祥,好不容易发现,转到空间参考,感谢作者 再次感谢,本文的作者bye2000. Linux下架设代理服务器 作者:bye2000 一.代理服务器概述 1.1什么是代理服务器 在TCP/IP网 ...

  9. 构建Squid代理服务器-传统代理、透明代理、反向代理

    Squid是Linux系统中最常用的一款开源代理服务软件,主要提供缓存加速和应用层过滤控制的功能,可以很好的实现HTTP.FTP.DNS查询以及SSL等应用的缓存代理. 正向代理: 根据实现的方式不同 ...

  10. 10个关于linux中Squid代理服务器的实用面试问答

    10个关于linux中Squid代理服务器的实用面试问答 不仅是系统管理员和网络管理员时不时会听到"代理服务器"这个词,我们也经常听到.代理服务器已经成为一种企业常态,而且经常会接 ...

最新文章

  1. 用 Heapster 监控集群 - 每天5分钟玩转 Docker 容器技术(176)
  2. sql查阅每一月的数据
  3. [HOW TO]-Ubuntu下 Tomcat 9 的设置办法
  4. 疫情冬天过去,二手经济春天到来
  5. linux中profile文件作用,解析Linux系统中bashrc和profile文件的作用区别
  6. Unity5和WebGL移植指南的一些总结
  7. www.android ind.com,Android
  8. Smith Numbers POJ - 1142 (暴力+分治)
  9. JAVA里点击树与表格结合,javaswing中的表格(jtable)和树(jtree)组件使用实例.doc
  10. python全栈开发_day25_面向对象的接口,多态,鸭子类型,抽象父类,析构格式化,反射和断言...
  11. 使用 .NET Core 开发 BT Tracker 服务器
  12. 眼图观测实验报告_通信原理实验报告 -
  13. RF(robotframework)安装后RIDE双击打不开的问题
  14. Mstar 平台背光时序调试
  15. 屌丝c++语言程序设计第二章 c++语言基础
  16. itsm安装部署(Vmware)
  17. 【Python】官方文档中文版
  18. ESP32-NVS存储(非易失性存储库)
  19. BIOS实战之Memory配置
  20. javascript编码调试环境-ide和调试工具

热门文章

  1. shell实现ftp命令示例
  2. 计算机word基础操作知识点,计算机WORD知识点整理
  3. plc编程语言有几种?plc常用的编程语言
  4. php与plc,plc编程语言有哪几种
  5. JeePlus:代码生成器
  6. 基于STM32 HAL库硬件SPI的ST7789驱动(TFT-LCD 240*320)
  7. 烽火服务器查询服务器型号,烽火服务器应该起的进程
  8. ShadowGun Shaders
  9. 联想启天M439E BIOS升级为F1KT74AUS
  10. 新sniffer pro 4.75 sp5下载