代理服务器是目前网络最常见的服务器之一,它可以提供文件缓存复制和地址过滤等服务,充分利用有限的出口宽带,加快内部主机的访问速度,也可以解决多用户需要同时访问外网但公网ip地址不足的问题。同时也可以在座位一个防火墙,隔离内网与外网,提供监控网络和记录传输信息的功能,加强局域网的安全性能。
squid代理服务器工作原理:
代理服务器接受到客户端a的请求后,首先与访问控制列表中的访问规则相对照,如果满足要求,则缓存中查找是需要的信息。如果不满足信息则代理服务器会代替客户端发出这个请求到internet的主机,主机将该请求发送到代理服务器,代理服务器会自己缓存该请求并且将该请求返回客户端,解决客户端的请求。客户端b向代理服务器提出相同的请求,代理服务器也是首先与访问控制列表中的访问规则相对照,如果满足要求,在缓存中将信息传递给客户端B.
通过阻止访问控制清单(ACL)和访问权限清单(ARL)的特定网络链接减少潜在的internet非法链接,可以使用这些清单确保内部网的主机无法访问有危险或者不适宜的站点;
分为:正向代理服务器,反向代理服务器;
正向代理服务器
1.让服务端能出公网;
2.搜索软件squid的安装包,安装合适的squid软件
我们安装第一个软件:
3.启动squid服务,查询squid服务使用的端口:squid服务使用的3128端口;
4.关闭防火墙;以及设置selinux的状态为关闭状态;
5.vim /etc/squid/squid.conf ###设置配置文件让所有人访问,打开访问端口;
6.重新启动服务
7.客户端测试:
a.客户端现在还无法上网;
b.修改浏览器的代理服务;进入preferences,按照下图进入setting,
设置完成以后,浏览器里面输入网址测试:
客户端通过代理服务器可以上网,我们的正向代理完成;
反向代理
实验要求:一台部署http的客户端(ip:145)虚拟机,一台没有部署http但是安装squid代理服务器的服务端(ip:140)虚拟机
反向代理:客户端只知道代理服务器的地址,而不知道真实的服务器。客户端只能被动的请求代理服务器,在由代理服务器去访问真实的服务器。
1.服务端:安装squid软件,启动该服务;
2.修改配置文件 /etc/squid/squid.conf
http_port allow all #允许所有的客户端http访问
http_port 80 vhost vport #
cache_peer 192.168.88.145 parent 80 0 proxy-only
cache_dir ufs /var/spool/squid 100 16 256
3.重新启动squid,确保无http服务;
4.客户端安装http服务,重新启动HTTP服务,让防火墙通过http服务
5.编辑/var/www/html/index.html文件:
6.客户端测试:浏览器输入服务端ip可以看见客户端/var/www/html/index.html文件
反向代理的轮询
实验要求:在反向代理的基础上,在准备一台开启http服务的虚拟机;
1.服务端修改配置文件 vim /etc/squid/squid.conf
###round-robin 平衡轮询;
####weight=3 平衡轮询三次
2.开启另外一台虚拟机,安装http服务,让防火墙通过http服务:
3.编辑默认页面:
3.客户端测试:输入服务端ip地址,随机出现轮询虚拟机的默认页面
再刷新一次转换ip133默认页面,ip133刷新三次转化ip145