Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
正向代理:
这里我利用linux系统作为squid服务器,所以首先要来在linux上安装squid。
当本地站点没有缓存时,需要DNS主动转向Internet进行请求信息,为要进行解析,需要有DNS指向,配置/etc/resolv.conf文件,指明DNS,这里我使用的是电信的
然后把squid服务启起来service squid start
为了实现代理,需要配置squid的配置文件,对其进行相应的修改
vim /etc/squid/squid.conf
首先,配置一下出现错误时的规则
意思是说,当无法访问时,页面显示转到其网关192.168.2.254(当然可以根据实际需求进行配置,这里只是实验说明),显示错误页面效果,让用户明白访问出错。
然后重启squid服务service squid restart
这时可以测试一下,但测试之前,要对内部主机做代理:
然后测试一下
这是因为我们没有配置代理的其他信息,是上不去网的,由图可以看出,刚才做的已经生效了。
然后接着对配置文件进行配置,来达到想要的效果。这里先允许一下所有的,来看下效果
不要忘了重启squid服务
说明,代理已经生效了。但是允许所有当然不是理想的情况,这时,可以对其他地方进行编辑配置,来达到理想的效果
这里先以控制一台主机为例:
上图中的badip是自己起的名字,590、591两行表示拒绝192.168.2.100访问外网
配置完成以后,同样要重启服务,这里把其中一台主机地址改为192.168.2.100,然后来看测试结果
然后把地址改成其他的再测试
要做其他的效果,可以根据自己的需求根据配置文件里的说明来编辑配置文件即可,这里我就不在一一举例。
透明代理:
把所有的通过80多口的流量都重定向到3128端口
刚才我们在浏览器里设置了代理,在做透明代理时,我们要把其取消,并在填写地址时要填写上网关、DNS。
然后要把squid服务器的数据转发功能打开,编辑/etc/sysctl.conf
然后执行如下命令:
然后做端口的重定向(把所有的通过80多口的流量都重定向到3128端口)
这条命令什么意思,来看另一命令就清楚了
然后去配置squid的配置文件来做策略
这里不做其他配置,依然先允许所有,然后依然要重启服务,测试
然后再来做一个例子
然后重启服务测试
反向代理:
为了说明问题,首先要在内部主机搭建一www服务器,这里,为了,说明问题,只是简答的搭建了一下
配置squid配置文件
然后重启服务,测试
在外部pc浏览器内输入http://192.168.102.44便能访问到内部www服务器了: