代理服务器(Proxy)

目录

1.什么是代理服务器

2.代理服务器的作用

3.代理服务器的工作流程

4.安装代理服务器软件及配置文件解析(squid)

5.正向代理

6.修改数据存放位置

7.设置磁盘使用阈值


"代理"两字顾名思义就是以代理人的身份去帮助其他人取得所需要的东西!!!

而它在网络中如同我们现实生活中一样,当用户要求访问网络资源的时候,而直接又不能上网,于是用户会主动找到到Proxy,Proxy就会前往用户所需要的目的地获取到相应的信息并返回给客户端。

2.代理服务器的作用

(1)缓存功能,提高用户访问速度

(2)对内部网络客户端进行权限限制

(3)比防火墙有更高的过滤功能

主要透过 Proxy 的服务程序 (daemon) 提供网络代理的任务,因此 Proxy 能不能进行某些工作,与该服务的程序功能有关。 举例来说,如果你的 Proxy 并没有提供邮件或 FTP 代理,那么你的客户端就是无法透过Proxy 去取得这些网络资源。 主要运作的行为在 OSI 七层协议的应用层部分 (所谓的比较"高阶"之意)。

3.代理服务器的工作流程

代理服务器(Proxy)_第1张图片

1.Cilent端向Proxy服务器端发送一个数据请求包

2.Proxy服务器会对比这个数据包的“来源”和数据包的目的地是否“合法”,如果合法那么Proxy服务器端会帮忙取得数据(对比政策),如果不合法(被定义规则拒绝)将会拒绝为Cilent提供请求。

3.Proxy服务器会检查自己的缓存数据(新的数据在内存里,旧的数据则放置在硬盘上),如果有Cilent所需的资源,直接将数据取出,而不会向Internet获取数据。

4.Proxy端向Internet上取得相关信息

5.返回给Cilent段

优点:

节省网络带宽,降低网络负载

已较短的路径取得网络数据

通过上层代理服务器,达到数据分流的效果

缺点:

容易被人利用进行非法操作

可能会取得旧的错误数据

 

4.安装代理服务器软件及配置文件解析(squid)

/etc/squid/squid.conf                        //主配置文件

/etc/squid/mime.conf                        //设定 squid 所支持的 Internet 上面的文件格式

/usr/sbin/squid                                  //squid主程序

/var/spool/squid                                //squid缓存放置的目录

yum -y install squid                           //安装squid程序

默认端口:3128

                                                                主配置文件解析

                        先定义acl(访问控制列表),在加载访问控制列表

ACL规则定义格式: acl + 规则名 + 类型 + 目标

规则名:自定义

类型:src //源地址

dst //目的地址

srcdomain //源域

dstdomain //目的域

url_regex URL //正则表达式(字符串部分)

urlpath_regex URL //正则表达式中的路径

time [星期] [时间段]

S (Sunday,星期日) M(Monday,星期一) T(Tuesday,星期二) W(Wednesday,星期三)

H(Thursday,星期四) F(Friday,星期五) A(Saturday,星期六)

时间段的表示方式是: XX:00-YY:00 如: 20:00-22:00

maxconn 客户端的最大连接数

匹配规则格式:http_access + 动作 + 规则名

动作:

deny //拒绝

allow //允许

定义格式不分前后,匹配规则分前后顺序,如果要定义一个具体的IP地址那么后面要加上/32

acl xx acl 0.0.0.0/0

http_accless allow xx //允许所有ip访问

http_port 3128 //默认监听端口

cache_mem 64M //内存缓存区大小

cache_dir ufs /var/spool/squid 200 16 256 //硬盘缓存大小

cache_effective_user squid //设置缓存的有效用户

cache_effective_group squid //设置缓存的有效用户组

cache_access_log /var/log/squid/access.log //访问日志文件的保存路径

cache_log /var/log/squid/cache.log //缓存日志文件的保存路径

visible_hostname linuxprobe.com //设置Squid服务器的名称

cache deny test //默认都是做缓存的,而这条命名就是不做缓存

cache_men 10 MB //从硬盘中划10MB出来存放“热门数据”

这是“linux就该这么学”这本书的原话,大家可以去借鉴

代理服务器(Proxy)_第2张图片

5.正向代理

正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户

通过squid服务让客户端上网(默认已安装squid服务)

代理服务器(Proxy)_第3张图片

服务端

vim /etc/squid/squid.conf

代理服务器(Proxy)_第4张图片

代理服务器(Proxy)_第5张图片

iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT

客户端

代理服务器(Proxy)_第6张图片

我这里使用的Firefox浏览器

代理服务器(Proxy)_第7张图片

代理服务器(Proxy)_第8张图片

代理服务器(Proxy)_第9张图片

然后测试一下能不能上网

代理服务器(Proxy)_第10张图片

6.修改数据存放位置

cache_dir ufs /xx 100 16 216

mkdir /xx

改了之后还不能马上运行,因为selinux的安全上下文不同会被selinux给阻止运行,还用把所有组和所有者改为squid的。

代理服务器(Proxy)_第11张图片

7.设置磁盘使用阈值

cache_swap_high 95

cache_swap_low 90

这条命令代表当磁盘使用到95%是,会将旧的缓存数据删除到剩下磁盘的90%

你可能感兴趣的:(网络)