Squid
是一种在
Linux
系统下使用的优秀的代理服务器软件。
squid
不仅可用在
Linux
系统上,还可以用在
AIX
、
Digital Unix
、
FreeBSD
、
HP-UX
、
Irix
、
NetBSD
、
Nextstep
、
SCO
和
Solaris
等系统上。
下载安装简单,配置简单灵活,支持缓存和多种协议
Squid
是一个缓存
internet
数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要下载一个主页时,它向
Squid
发出一个申请,要
Squid
替它下载,然后
Squid
连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,
Squid
把保存的备份立即传给用户,使用户觉得速度相当快。
对于
Web
用户来说,
Squid
是一个高性能的代理缓存服务器,可以加快内部网浏览
Internet
的速度,提高客户机的访问命中率。
Squid
不仅支持
HTTP
协议,还支持
FTP
、
gopher
、
SSL
和
WAIS
等协议。和一般的代理缓存软件不同,
Squid
用一个单独的、非模块化的、
I/O
驱动的进程来处理所有的客户端请求。
Squid
将数据元缓存在内存中,同时也缓存
DNS
查寻的结果,除此之外,它还支持非模块化的
DNS
查询,对失败的请求进行消极缓存。
Squid
支持
SSL
,支持访问控制。由于使用了
ICP
,
Squid
能够实现重叠的代理阵列,从而最大限度的节约带宽。
Squid
的另一个优越性在于它使用访问控制清单(
ACL
)和访问权限清单(
ARL
)。访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的
Internet
非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。
1
,正向代理:就是实现代理上网
yum �Cy install squid
vim /etc/squid/squid.conf
http_port 3128
也可以是
ip
:
3128
cache_mem
定义代理服务器使用的内存,建议为物理内存的三分之一
visible_hostname
cache_dir
定义缓存目录
例子:
cache_dir ufs /var/spool/squid 1000 16 256 ufs
类型
路径
文件大小
目录数
文件数
reply_body_max_size N allow all
定义限制文件大小
N
字节数
cache_swap_low N
cache_swap_hight M
这两项是定义当缓存超过
M
时,新是数据取代旧的内容,到
N
时停止,这里的
N
和
M
都是百分比
http_access allow all
截止简单的
squid
正向代理完成了
.
squid �Cz
初始化
squid
文件
squid -k parse
验证语法错误
service squid start|stop|restart|reload
2
,透明代理:首先开启转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
然后:
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j SNAT --to 192.168.0.88
192.168.10.0/24
内网
ip 192.168.0.88
外网地址
�Co
对应的外网网卡接口
3
,反向代理的实现:
内网
web
的
ip
:
192.168.0.156
代理服务器内网
ip
:
192.168.0.88
外网
ip
:
192.168.10.1
我们安装好
squid
后配置:
Host_port 192.168.0.88:80 vhost
cache_mem
cache_dir ufs /var/spool/squid 1024 16 256
visible_hostname
error_directory /usr/share/squid/errors/
的文件
cache_peer WebIP parent 80 0 originserver weight =n max-conn=n
http_access allow all
squid
还可以以使用强大的
acl
控制上网:
acl
格式:
acl
列表名
列表类型
列表内容
例:
acl localhost src 192.168.0.0/24
列表类型:
src
:源
ip
(单个
ip,
网段,连续的
ip
段)
dst
:目标网络(
ip
)
dstdomain
:目标域名
//acl NOBAIDU dstdomain baodu.com
url_regex:
完整的路径
urlpath_regex :
包含的内容
//acl reject url_regex -i ^http://www.baidu.com/index.html
//acl NOMP3 urlpath_regex -i \.mp3$
port:
基于端口
maxconn
:最大连接数
time
:时间的控制
当我们定义好
acl
后就可以应用了,我们把匹配详细的放于最前面,在某个列表前加叹号是取反。