Squid配置

Squid代理服务器简介

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等协议。

实验环境:

系统 redhat linux 5.4
外网 eth0:192.168.0.1
内网 eth1:192.168.1.254
Squid Cache: Version 3.1.7

RPM安装,这里就不说明了。下载地址:http://www.squid-cache.org/

修改配置文件

[root@a ~]# cat /etc/squid/squid.conf

配置文件说明

定义acl访问控制元素:ip地址、端口

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

acl worktime time 8:00-23:59 //定义工作时间
acl worktime time 00:00-5:59
http_access allow mynetwork !worktime //只允许非工作时间上网

访问控制设置
http_access allow manager localhost
http_access deny manager

# Deny requests to certain unsafe ports
http_access deny !Safe_ports 禁止非安全端口的访问

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

http_access allow localnet
http_access allow localhost

# And finally deny all other access to this proxy
http_access allow all 最好一条http_access设置默认访问规则

# Squid normally listens to port 3128
http_port 192.168.1.254:3128 transparent 代理服务器监听的地址及端口,transparent 为透明代理模式

# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?

# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid 1000 8 128 配置缓存文件的文件格式,缓存大小,缓存目录数

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

visible_hostname 192.168.1.254
cache_mem 128 MB //squid服务器占用内存大小
forwarded_for off //不传递被代理地址
via off //不传递代理服务器信息

初始化squid代理服务器

squid -z

开启路由功能,并将下面的命令写入/etc/rc.d/rc.local 文件,使其开机自动开启路由功能

echo ‘1’ >/proc/sys/net/ipv4/ip_forward

配置iptables防火墙

自动将http请求转发到代理服务器上

iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-ports 3128

设置源地址映射

iptables -t nat -A POSTROUTING -j SNAT –to-source 192.168.1.254 (外网地址)

iptables -P INPUT ACCEPT

启动squid代理服务

[root@a ~]# service squid restart

查看squid代理服务器缓存日志

[root@a ~]# tail -f /var/log/squid/access.log

个人感觉使用缓存服务器之后网页访问速度有大幅度的加快。

Leave a Reply

Your email address will not be published.