RHEL5.7下的squid服务器配置

系统 Linux
Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。

Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务 器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络 安全,到局域网通过代理上网。Squid主要设计用于在Unix和Linux一类系统运行。
有关代理服务器,主要有以下几个特点:
应用层代理
1、针对特定的网络协议进行代理
2、典型应用:HTTP代理和FTP代理
代理服务器作用
1、局域网内主机可以通过网内可以访问的主机去访问外网
2、可以提供缓存,提高访问效率
3、可以实现一定程度的访问控制
squid服务具有的功能
1、提供HTTP和FTP协议的代理
2、缓存代理内容,提高访问速度
3、对客户机进行访问控制(基于目标地址或时间)
squid代理类型
正向代理:为客户端提供代理服务,需要客户端指定IP
反向代理:为服务器提供代理服务,目的为了减轻真实服务器负担
透明代理:特殊的正向代理,不需要客户端做任何设置,代理服务器必须是网关,就相当于路由器和防火墙
    squid代理服务器默认端口为3128,这个端口号可以更改,比如更改为公网中常用的8080端口。我们按照下面这个例子来验证
一、正向代理服务器配置
在这个例子中,RHEL-B是网关,连接着外网;Windows PC是内网主机,网关指向RHEL-B,其中RHEL-B只允许RHEL-C做NAT转换,也就是说在默认情况下,Windows PC是不能访问外网的,只有RHEL-C可以访问外网。在这里,我们要通过将RHEL-C设置为代理服务器,使得Windows PC能够访问外网。
 
首先查看RHEL-C的squid有没有安装(系统默认已装)
rpm -q squid
进入squid配置文件
vi /etc/squid/squid.conf
搜索http_port 3128,将3128端口号改为8080
image 
搜索acl our_networks,定义acl,名称our_networks,设为允许,将源地址改为主机所在的网段192.168.10.0/24。否则默认只允许本地回环口访问。

保存后退出,然后启动squid。在启动之前,必须保证squid有完整的域名
vi /etc/hosts

接下来对squid服务器进行初始化,目的是在squid服务器工作目录中建立缓存子目录。
squid -z
查看squid子目录,可以发现多了16个子目录

*****************************************************
squid子目录大小涉及到squid服务器性能问题,默认情况下一级子目录16个,二级子目录256个。可以在squid.conf中修改每个目录容量大小:
cache_dir ufs /var/spool/squid 100 16 256
其中/var/spool/squid代表工作路径,目录最大容量100M,一级子目录16个,二级子目录256个。
另外可以修改缓冲内存大小,建议设置为物理内存三分之一,例:
chche_mem 8 MB
*****************************************************
开启squid服务
service squid start
查看8080端口是否开启

这时回到windows主机上,设置IE浏览器的“internet选项”-“连接”-“局域网设置”,将代理服务器IP和端口填进去

这时候访问外网地址http://198.2.3.1,就可以成功访问了(模拟外网的linux主机要记得开启httpd服务)。

二、透明代理服务器配置
前面有说过,透明代理只能在网关上配置。因此这次需要修改RHEL-B的squid.conf文件。先将RHEL-B原先的NAT删除,使得windows PC和RHEL-B均不能访问外网,仍然引用之前那个拓扑:

和之前一样,首先修改允许访问的网段


找到http端口号位置,在后面加个transparent,就代表代理服务器时以透明模式运行的。


接下来对squid服务器进行初始化


squid -z

重启squid服务


service squid reload

查看3128端口有没有开启


netstat -ntl

访问外网地址

http://198.2.3.1

,就可以成功访问了(注意清空之前的cookie,而且网关的httpd服务不能开启,否则80端口会被占用)。


*****************************************************

如果网关做了NAT,而静态透明代理需要在SNAT之前执行的话,需要输入以下iptables命令:

iptables -t nat -A PREOUTING -s 192.168.10.0/24 -p tcp -dport 80 -j REDIRECT--to-ports 3128

*****************************************************

责任编辑:庞桂玉 来源: 51cto
相关推荐

2012-05-09 10:30:29

RHEL5.7DHCP服务器

2012-05-09 10:33:56

RHEL5.7DNS服务器

2010-05-13 16:23:43

DNS服务器

2010-11-15 14:46:04

linuxsquidsquidGuard

2012-09-18 09:55:28

2014-04-09 10:50:01

Squid架构缓存服务器

2009-09-03 15:19:06

RHEL5下DNS服务器红帽

2020-08-02 15:00:40

SquidSSH系统运维

2009-09-03 14:19:37

RHELDHCP服务配置应用

2009-10-12 10:17:37

RHEL5配置NFS

2009-09-03 14:27:15

RHEL 5.0版本控制服务器红帽

2023-05-24 11:56:06

RHEL 9DHCP服务器

2009-09-03 15:08:14

RHEL5DNS服务配置红帽

2011-02-23 12:18:28

DebianProFTPd服务器

2011-02-23 13:26:18

Linuxvsftp

2009-03-06 16:11:49

RHEL5SendmailDovecot

2011-02-23 10:18:51

CentosProFTPD

2009-02-12 15:51:00

squid代理服务器web服务器

2011-07-14 17:17:07

Domino服务器BSOA模块

2010-09-02 14:09:06

LinuxDHCP服务器
点赞
收藏

51CTO技术栈公众号