第三步:安装squid
yum install squid* -y
============================================================================================Installing:
squid x86_64 7:3.1.10-1.el6_2.4 base 1.7 M
Installing for dependencies:
perl-DBI x86_64 1.609-4.el6 base 705 k
Transaction Summary
============================================================================================Iinstall 2 Package(s)
第三步:编译squid.conf
先备份squid.conf
cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
备不备份都行,其实在squid目录下有一个squid.conf.default文件就是这个conf的备份,这只是我个人习惯
vim /etc/squid/squid.conf
在后面修改及增加以下内容(黑色字体为原有的,栗红字体为增加部分,绿色字体为修改部分)
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 pm_equipment src "/etc/squid/ip_server" #设置内网IP列表
acl pm_qiantai src "/etc/squid/ip_special" #设置内网IP列表
acl pm_backup src "/etc/squid/ip_limited" #设置内网IP列表
acl pm_dhcp src "/etc/squid/ip_dhcp" #设置内网IP列表
acl deny_ip dst "/etc/squid/deny_ip" #设置禁止访问外网的IP
acl deny_dns dst "/etc/squid/deny_dns" #设置禁止访问的域名
acl deny_urlpath urlpath_regex -i "/etc/squid/deny_urlpath" #设置禁止访问包含关键字的url,如:\.jpg$
acl deny_url url_regex -i "/etc/squid/deny_url" #设置禁止访问的url,如^">
acl deny_urlhead dstdom_regex -i "/etc/squid/deny_urlhead" #设置禁止访问某些关键字开头的网址,如:^game
acl ban_down url_regex -i "/etc/squid/deny_downfile" #设置禁止下载的文件类型,如:\.mp3$ \.vbs$ \.rmvb$
acl server_time time SMTWHFA 01:00-03:00 #设置服务器连网时间
===========下面内容不是写在squid.conf内的,只是上面配置的说明=================
注:为了方便日后的管理,acl定义的ip地址段都做为一个文件放到/etc/squid/下,例如/etc/squid/ip_server
touch /etc/squid/ip_server
vim /etc/squid/ip_server
写入所要用到的地址段
192.168.88.1-192.168.88.40
SMTWHFA:表示周日~周一,每个字母表示一天
注意:同一网段内的地址范围不用写子网掩码,而分几个网段的就要写了例如:192.168.88.0/24 172.31.1.0/16或者192.168.88.0-192.168.89.0/24,写法为一网段一行)
===========上面内容不是写在squid.conf内的==================
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 pmfsip src 192.168.88.3
acl pmfsrmac arp 00:14:78:31:ED:D2
http_access deny pmfsmac !pmfsip
http_access deny !pmfsmac pmfsip
这是ip与mac的绑定,我本也想把它做到一个文件里,不然几十台服务器一个个写,真要吐了,但一直未能成,这回头再试吧。
http_access allow manager localhost #允许manager访问localhost
http_access deny manager #禁止manager访问
http_access deny !Safe_ports #禁止访问不在Safe_ports里的端口
http_access deny CONNECT !SSL_ports #禁止访问非443,563端口
http_access allow localnet
http_access allow localhost
http_access allow pm_qiantai SSL_ports #允许特殊用户使用443端口,但不能上网
http_access allow pm_equipment server_time #服务器上网时间
http_access deny deny_ip
http_access deny deny_dns
http_access deny deny_url
http_access allow pm-dhcp
http_access deny all
http_port 192.168.88.254:8080 transparent
#squid的http监听端口为8080,目地是把目标端口为80重定向到8080端口(默认是3182,改不改看个人),如果要设置为普通的代理这句写成:
http_port 8080
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid
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
#禁止缓存 URL中有包含cgi-bin和https:\\开头的都不缓存,asp、cgi、php等动态脚本不缓存
hierarchy_stoplist -i ^https:\\ ?
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgi
acl denyssl urlpath_regex -i ^https:\\
no_cache deny QUERY
no_cache deny denyssl
#Cache setup
cache_dir ufs /var/spool/squid 2048 16 256
#设置硬盘缓冲位置大小存储类型,注意:加粗的这个值一定要比cache_mem大,不然会报错。
cache_mem 1024 MB #指定缓冲内存大小(根据服务器配置以及需要来配置,一般设置1/3-1/2倍的内存大小即可)
cache_swap_low 90 #最低缓存率百分比
cache_swap_high 95 #最高缓存率百分比,当高速缓存占用到95%时,自动减小到90%
maximum_object_size 4096 KB #设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘
minimum_object_size 0 KB #设置squid磁盘缓存最小文件
maximum_object_size_in_memory 4096 KB #设置squid内存缓存最大文件,超过4M的文件不保存到内存
#dns_children 10 #设置DNS查询程序的进程数,默认是5,据说最高是32
redirect_children 100 #指定squid应该开启多少重定向进程,默认值是5个进程
ipcache_size 1024 #DNS解析后的IP放在缓存中,可免去重复查询DNS,提高访问速度
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
visible_hostname pmproxy #设置主机名
error_directory /usr/share/squid/errors/zh-cn #设置报错为中文
cache_access_log /var/log/squid/access.log #设置访问日志
cache_log /var/log/squid/cache.log #设置缓存日志
squid logfile_rotate 6 #设置日志轮转,6表示会生成0~6共7个日志文件
cache_mgr itadmin@163.com #设置管理员邮箱
forwarded_for off #不传递被代理地址
via off #不传递代理服务器信息
配置完成后保存,并启动squid
service squid start
init_cache_dir /var/spool/squid... 正在启动 squid:. [确定]
将squid加入系统启动项
chkconfig --level 35 squid on