linux下的squid代理

腾讯的web页面使用的加速技术----->squid代理
squid---->代理软件
Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器并向这个页面发出请求。然后,Squid显式地聚集页面数据到客户端机器,而且同时复制一份到squid服务器。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。
VPN的概念
虚拟专网(VPN-Virtual Private Network)指的是在公用网络上建立专用网络的技术。之所以称为虚拟网主要是因为整个VPN网络的任意两个节点之间的连接并没有传统专网所需的端到端的物理链路,而是架构在公用网络服务商所提供的网络平台之上的逻辑网络,用户数据在逻辑链路中传输。
代理的概念
代理,也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接返回缓存了的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。
1.正向squid代理
让客户端通过服务端上网
服务端设置:
(1)设置让虚拟机上网的步骤
服务端主机:

vim /etc/resolv.conf
  3 nameserver 114.114.114.114
vim /etc/sysconfig/network-scripts/ifcfg-eth0 
  GATEWAY0=172.25.254.26

systemctl restart network

主机设置:

sysctl -a |grep ip_forward			     ##先查看是否开启内核路由功能
vim /etc/sysctl.conf 	    			 ##如果ip_forward为0则需要修改为1
sysctl -p		   					     ##重启生效
firewall-cmd --add-masquerade		  	 ##给防火墙开启地址伪装功能(临时开启)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)设置squid

yum install squid -y
vim /etc/squid/squid.conf
 56 http_access allow all						##为所有人开启代理功能
 62 cache_dir ufs /var/spool/squid 100 16 256	##指定代理的缓存地址,100M缓存空间
 有16个一级目录各有256个二级目录可供缓存
systemctl stop firewalld
systemctl restart squid

在这里插入图片描述
客户端设置:
在客户端浏览器中设置代理服务器地址和端口
在这里插入图片描述
选择settings
在这里插入图片描述
测试:
可见客户端无法ping通 ,114.114.114.114和www.baidu.com但却可以在浏览器访问
在这里插入图片描述
2.squid的反向代理
目的:通过访问服务端ip地址转跳到客户端的地址
服务端设置:

systemctl stop httpd
systemctl stop firewalld
vim /etc/squid/squid.conf
 59 http_port 80  vhost  vport
 60 cache_peer 172.25.254.226 parent 80 0 proxy-only	##proxy-only表示只缓存
systemctl restart squid

在这里插入图片描述
客户端设置:

yum install httpd -y
systemctl start httpd
systemctl stop firewalld
vim /var/www/html/index.html
 <h1>客户端ip</h1>

在这里插入图片描述
测试:
在一台主机上访问服务端ip ,显示的内容为客户端ip
在这里插入图片描述
2.squid反向代理的轮询访问
服务端设置:

vim /etc/squid/squid.conf
 59 http_port 80  vhost  vport
 60 cache_peer 172.25.254.226 parent 80 0 proxy-only name=web1 originserver round-robin weight=2 ##weight的值表示轮询的次数
 61 cache_peer 172.25.254.26 parent 80 0 proxy-only name=web2 originserver round-robin
 62 cache_peer_domain web1 web2 www.westos.com##因为只有域名可以支持轮询,不能设置成ip地址
确保客户端226和26主机上都开启了httpd且有默认文件
systemctl restart squid

netstat -antlupe |  grep squid       ##查看squid的端口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:
设置访问主机的解析后,主机访问浏览器输入域名:

vim /etc/hosts  172.25.254.126  www.westos.com

在这里插入图片描述
在浏览器中访问squid配置文件中的域名(www.westos.com
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qwqq233/article/details/87858019