Squid代理服务 html
1、本章结构 前端
2、代理服务器概述 web
3、squid简介 vim
Squid是一个在GNU/GPL协议下发布的既可做为代理服务器,同时也可做为Web缓存守护进程的应用软件。Squid主要是支持像HTTP和FTP那样的协议,可是对其它的协议好比HTTPS,SSL,TLS等一样也能支持。其特色是Web缓存守护进程经过从常常上访问的网站里缓存Web和DNS数据,从而让上网速度更快。Squid支持全部的主流平台,包括Linux,UNIX,微软公司的Windows和苹果公司的Mac。 浏览器
每一台代理服务器上都有若干颗硬盘,每一个硬盘又分割成多个分区,每个分区又可创建多个目录,目录下存放文件,squid称这些文件为object。 缓存
查询方式: 安全
4、代理的基本类型 服务器
①传统代理:适用于Internet,需明确指定服务端 并发
[传统代理] dom
②透明代理:适用于共享上网网关,不需指定服务端
[透明代理]
透明代理的意思是客户端根本不须要知道有代理服务器的存在。
③反向代理:位于网站前端,代理web接受客户端的请求
5、使用代理的好处
①提升web访问速度
②隐藏客户机的真实IP地址
6、代理服务器概述
7、常见配置
http_port 3128 #代理服务器的端口
access_log /var/log/squid/access.log squid #squid记录的日志
cache_mem 64 MB #缓存程序所使用的空间
cache_dir ufs /var/spool/squid 100 16 256
visible_hostname proxy.wdd.com #告诉squid它的主机名,必须写
dns_testnames www.google.com www.163.com#能够测试squid是否可用
maximum_object_size 4096 KB #限制squid可以在本地缓存的文件的大小
reply_body_max_size 10 MB #用户经过squid可以下载的最大文件大小
error_directory /usr/share/squid/errors/Simplify_Chinese #中文错误信息
hierarchy_stoplist cgi-bin ? #用来强制某些特定的对象不被缓存,主要是处于安全的目的
coredump_dir /var/log/squid #定义dump的目录
refresh_partern #刷新缓存的规则
8、acl访问控制
①ACL(Access Control List,访问控制列表):根据源地址、目标URL、文件类型等定义列表。
acl 列表名称 列表类型 列表内容 …
②针对已定义的acl列表进行限制
http_access allow或deny 列表名称 …
③访问规则
以下所示:
#vim /etc/squid/squid.conf
….
acl all src 192.168.131.0/24
http_access deny all
#service squid reload
④列表类型
src |
源地址 |
dst |
目标地址 |
port |
目标端口 |
dstdomain |
目标域 |
time |
访问时间 |
maxconn |
最大并发链接数 |
url_regex |
目标URL地址 |
urlpath_regex |
整个目标URL路径 |
以下所示
#vim /etc/squid/squid.conf
…
acl all src 0.0.0.0/0.0.0.0
acl MYLAN src 192.168.1.0/24 192.168.4.0/24
acl WORKTIME time MTWHF 08:30-17:30
http_access allow MYLAN WORKTIME
http_access deny all
#service squid reload
注:HTTP_PROXY 为HTTP协议提供代理
HTTPS_PROXY 为HTTPS协议提供代理
FTP_PROXY 为FTP协议提供代理
NO_PROXY 添加不使用代理的客户机地址
2、传统代理
试验准备:主机A、B、C,IP地址分别为192.168.131.137、192.168.131.130、192.168.131.136,主机B和主机C操做系统为RHEL6.4 x86_64,为最小化安装,主机A为桌面化安装。主机A、B、C均在同一个网段,主机A做为客户端,主机B做为squid服务器,主机C做为网站服务器。
均关闭防火墙和SELINUX。
1、主机C操做
#yum –y install httpd
#service httpd start
#vim /var/www/html/index.html
I am host c
2、主机B操做
# yum -y install squid
# vim /etc/squid/squid.conf
http_port 3128
visible_hostname www.taobao.com #必定要填写
# service squid start
3、主机A操做
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
#service NetworkManager stop
#ifdown eth0
#ifup eth0
#ifconfig
3、客户端测试
①图形化测试
修改火狐浏览器设置:"Edit"—"Preferences"—"Advanced"—"Network"—"Settings"—"Manual proxy configuration",填写好代理服务器端口和3128端口,以下
点击"ok"便可。
将squid代理服务器停掉
#service squid stop
发现访问不了了
从新启动squid
#service squid start
又能够访问了
②字符界面测试
# yum -y install elinks #安装字符浏览器
#vim /etc/profile
HTTP_PROXY=http://192.168.131.130:3128
export HTTP_PROXY
# elinks 192.168.131.136
中止squid服务器
#service squid stop
在访问192.168.131.130,链接被拒绝
3、透明代理
实验准备:主机A做为内网测试机,IP地址为192.168.10.2,主机B做为代理服务器,两块网卡,第一张网卡eth0于主机A在同一个网段,IP地址为192.168.10.1;第二张网卡IP地址为200.200.200.1,主机C在同一个网段。主机C做为外网服务器,其IP地址为200.200.200.2。三台主机均清楚防火墙和禁用SLEINUX。
1、主机A操做
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
#指定网关
#service NetworkManager stop
#ifdown eth0
#ifup eth0
2、主机C操做
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
#service network restart
#yum –y install httpd
#service httpd start
#vim /var/www/html/index.html
3、主机B操做
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
#vim /etc/sysconfig/network-scripts/ifcfg-eth1
#service network restart
#vim /etc/sysctl.conf
#sysctl –p
#yum –y install squid
#vim /etc/squid/squid.conf
#service squid start
#iptables –F #清楚防火墙策略
#iptables –t nat -A PREROUTING –I eth0 –s 192.168.10.0/24 –p tcp –dport 80 –j REDIRECT –to-ports 3128
#配置防火墙策略 iptables -t nat -I PREROUTING -i 内网接口名 -s 内网网段 -p tcp --dport 80 -j REDIRECT --to-ports 3128
4、测试
①用内网测试机,访问外网
把代理服务器停掉
#service squid stop
发现没法访问了
②限制下载大小
代理服务器
#vim /etc/squid/squid.conf
reply_body_max_size 10 MB #10和MB之间是有空格的,不然报错
#service squid reload #从新加载配置文件
网站服务器
#dd if=/dev/zero of=/var/www/html/wdd.txt bs=1M count=15
客户端测试
在浏览器输入http://200.200.200.2/wdd.txt
4、反向代理
试验准备:主机A、B、C、D,主机A做为外网客户端,IP地址为200.200.200.2,主机B为代理服务器,双网卡,第一张网卡eth0与内网主机C和主机D在同一个网段,IP地址为192.168.10.1;第二张网卡与外网主机在同一网段,IP地址为200.200.200.1;主机C和主机D做为网站服务器,其IP地址分别为192.168.10.2和192.168.10.3,均关闭防火墙和SELINUX。主机A为图形化安装,主机B、C、D为最小化安装,操做系统为RHEL6.4 x86_64。
1、主机A操做
#vim /etc/sysconfig/network-ifcfg-eth0
#service NetworkManager stop
#ifdown eth0
#Ifup eth0
2、主机C操做
#vim /etc/sysconfig/network-ifcfg-eth0
#ifdown eth0
#ifup eth0
#yum -y install httpd
#service httpd start
#vim /var/www/html/index.html
I am web1
3、主机C操做
#vim /etc/sysconfig/network-ifcfg-eth0
#ifdown eth0
#ifup eth0
#yum -y install httpd
#service httpd start
#vim /var/www/html/index.html
I am web2
4、主机B操做
#vim /etc/sysconfig/network-ifcfg-eth0
#vim /etc/sysconfig/network-ifcfg-eth1
#service network restart
#yum –y install squid
#vim /etc/squid/squid.conf
acl wan src 200.200.200.0/24
http_access allow wan
http_port 200.200.200.1:80 vhost
visiable_hoatname www.taobao.com
cache_peer 192.168.10.2 parent 80 0 originserver round-robin weight=1
cache_peer 192.168.10.3 parent 80 0 originserver round-robin weight=1
#service squid start
5、测试
在外网主机输入http://200.200.200.1,按F5刷新获得以下结果