Squid 代理服务器应用
文章目录
- 一、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 代理服务器应用相关推荐
- Sun Solaris 9 下Squid 代理服务器的配置笔记
Sun Solaris 9 下Squid 代理服务器的配置也包括DNS域名解析服务器的配置. 一. squid 的工作是建立在 DNS 的服务之上的, 所以首先要配置好你的DNS服务,方可进行squi ...
- Linux上常用的安全技术iptables与squid代理服务器
一.iptables 指令语法 iptables [-t table] command [match] [-j target/jump] [-t table] 指定规则表 -t 参数用来,内建的规则表 ...
- CentOS下搭建Squid代理服务器
"量子扰动超导探测器.战争期间用它搜索潜艇,寻找敌人的赛伯武器系统." "哦?海军的玩意儿?打仗的时候用过?这么说,乌贼能读出你大脑芯片上储存的东西?"她停住脚 ...
- Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR 请求头
本实验操作系统选用 CentOS release 5.6 (Final) 实验目的实现 Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR 请求头 .使其显示任意IP 过 ...
- Squid 代理服务器应用大全
文章目录 一.Squid 服务基础 1.1 缓存代理概述 (一) 代理的工作机制 (二)代理的基本类型 1.2 编译安装及运行步骤(理论) 1.编译安装Squid(将所需的包上传到/opt目录下) 2 ...
- 部署Squid 代理服务器(内含传统、透明代理服务器的配置、ACL访问控制、日志分析、反向代理)
标题 一.Squid 代理服务器 代理的工作机制 Squid 代理的类型 二.安装 Squid 服务 1.编译安装 Squid 2.修改 Squid 的配置文件 3.Squid 的运行控制 4.创建 ...
- 搭建Linux安全的Squid代理服务器
本文介绍Linux下非常著名.常用的Squid代理服务器的使用,并着重讲述如何使用其提供的访问控制策略,来保证代理服务器的合法使用. 代理服务器的功能是代理网络用户取得网络信息,它 是网络信息的中转站 ...
- squid代理服务器详解
本文出处不祥,好不容易发现,转到空间参考,感谢作者 再次感谢,本文的作者bye2000. Linux下架设代理服务器 作者:bye2000 一.代理服务器概述 1.1什么是代理服务器 在TCP/IP网 ...
- 构建Squid代理服务器-传统代理、透明代理、反向代理
Squid是Linux系统中最常用的一款开源代理服务软件,主要提供缓存加速和应用层过滤控制的功能,可以很好的实现HTTP.FTP.DNS查询以及SSL等应用的缓存代理. 正向代理: 根据实现的方式不同 ...
- 10个关于linux中Squid代理服务器的实用面试问答
10个关于linux中Squid代理服务器的实用面试问答 不仅是系统管理员和网络管理员时不时会听到"代理服务器"这个词,我们也经常听到.代理服务器已经成为一种企业常态,而且经常会接 ...
最新文章
- 用 Heapster 监控集群 - 每天5分钟玩转 Docker 容器技术(176)
- sql查阅每一月的数据
- [HOW TO]-Ubuntu下 Tomcat 9 的设置办法
- 疫情冬天过去,二手经济春天到来
- linux中profile文件作用,解析Linux系统中bashrc和profile文件的作用区别
- Unity5和WebGL移植指南的一些总结
- www.android ind.com,Android
- Smith Numbers POJ - 1142 (暴力+分治)
- JAVA里点击树与表格结合,javaswing中的表格(jtable)和树(jtree)组件使用实例.doc
- python全栈开发_day25_面向对象的接口,多态,鸭子类型,抽象父类,析构格式化,反射和断言...
- 使用 .NET Core 开发 BT Tracker 服务器
- 眼图观测实验报告_通信原理实验报告 -
- RF(robotframework)安装后RIDE双击打不开的问题
- Mstar 平台背光时序调试
- 屌丝c++语言程序设计第二章 c++语言基础
- itsm安装部署(Vmware)
- 【Python】官方文档中文版
- ESP32-NVS存储(非易失性存储库)
- BIOS实战之Memory配置
- javascript编码调试环境-ide和调试工具