首页 > 代码库 > squid代理服务器

squid代理服务器

Squid代理

工作在应用层

主要提供缓存加速,应用层过滤控制的功能。

代理种类:1、传统代理   2、透明代理  3、反向代理

Squid代理/etc/squid/squid.conf 配置文件。

62    http_port  3128   默认监听的端口。若服务器有多个网络接口,但只希望在其中一个ip地址上提供服务,还可以同时指定ip地址,  例如: http_port 192.168.10.13128

Squid代理服务器使用内存资源比较多。


一、传统代理

客户端→squid代理→ Web

客户端ip192.168.233.128/24

squid代理服务器:192.168.233.130/24

Web端:192.168.233.129/24

首先1squid代理服务器:192.168.10.1/24 配置

/etc/squid/squid.conf

http_access allow all  //放在deny之前

http_port 3128   代理端口3128

visible_hostnamenginx  自己的主机名

/etc/hosts 下写上自己的ip与主机名,否则日志中会报错。

/etc/init.d/squidstart  不要重启,否则时间是会很长。直接start

Squid -z

2、客户端:在火狐浏览器设置代理

技术分享

填写服务器代理的ip地址。

技术分享

3、测试访问web

技术分享

4、验证代理服务器上的日志。

tail -f/var/log/squid/access.log

技术分享

5web服务端

技术分享

6、开启缓存功能。

/etc/squid/squid.conf

技术分享

Service squidrestart

技术分享


二、透明代理


技术分享

Squid服务器:

技术分享

把这些写在前面。

技术分享

[root@nginx ~]#/etc/init.d/squid start   不要restart,会很慢的。

squid –zX  重新初始话缓存,-X查看过程

iptables -t nat -APREROUTING -i eth0 -s 192.168.233.0/24 -p tcp --dport 80 -j REDIRECT --to-ports3128

iptables -t nat -APREROUTING -i eth0 -s 192.168.233.0/24 -p tcp --dport 443 -j REDIRECT--to-ports 3128

REDIRECT:重定向实现本机端口的重新定向,将内网访问过的都通过“ –to-ports 端口号的形式来指定映射的目标端口。

net.ipv4.ip_forward= 1  /etc/sysctl.conf 开启Ip转发。Sysctl -p

客户端:

把浏览器上的代理不要设置。

把网关设置成squidIp(是与squid同一网络中的)

技术分享

设置好以后,重新启动服务即可。

/etc/init.d/networkrestart

U:up状态   G:gateway

客户端打开浏览器进行访问

技术分享

最后在代理服务器上打开日志并检查。

技术分享同样,web上也有了访问日志了。但在web上显示的是squid的访问地址 192.168.0.138技术分享

acl访问控制:

squid中可以进行限制,可以针对源地址与目标地址,访问的url路径,访问的时间等各种条件进行过滤。

技术分享

源地址与目标地址的网段或是IP范围,主机名等。

技术分享

squid -k parse  测试是否正确。

squid -k check  

dstdomain:目标域,匹配域内所有站点

port:目标端口

url_regex -i^rtsp:// ^emule:// :目标资源的url地址,-i忽略大小写。

urlpath_regex -i\.mp3$ \.mp4$ \.rmvb$:以.rpm3.mp4,等结尾的url

time:定义的时间,例如:MTWHF 08:30-17:30 周一至周五08:30-17:30

整个配置文件里是从上到下来读的,越写在前面的,优先级越高,权限也越大。

技术分享

还可以建立对目标地址的名单

技术分享

定义类型与调用文件中的列表内容。

acl ipaddr dst"/etc/squid/all.list"

acl yu-mingdstdomain "/etc/squid/deny.list"

设置acl访问权限

http_access allowipaddr

http_access denyyu-ming

每一条规则中,可以包含多个acl列表名,各个列表之间以空格分隔,为的关系,表示必须满足所有acl列表对应的条件才会进行限制。

需要使用取反条件时,可以在acl列表前添加符号。


http_access denymusic clients  //禁止客户端下载mp3mp4等文件。

http_access denyyu-ming clients  //禁止客户端访问名单中的域名。

Squid

1、没有任何规则时,squid服务将拒绝客户端请求。

2、有规则但找不到相匹配的项时,squid将采用与最后一条规则相反的权限。例如:最后一条规则是allow,就拒绝客户端的请求,否则允许该请求。

   通常情况下,把最常用的控制规则放在阳前面,以减少squid的负载。在访问控制的总体策略上,建议采用“先拒绝后允许先允许后拒绝的方式,最后一条规则设为默认策略,设为

“http_access allow all”“http_access deny all”


本文出自 “silence” 博客,请务必保留此出处http://silencezone.blog.51cto.com/3613477/1940049

squid代理服务器