Squid代理服务器的解析以及搭建

Squid代理服务器

什么是squid?

squid是一款代理的软件,通过缓存的方式为用户提供Web访问加速对用户的Web访问进行过滤控制,可以很好地实现HTTP和FTP,以及DNS查询、SSL等应用的缓存代理,功能十分强大

squid代理作用:缓存加速、隐藏IP地址、应用层过滤ACL

Squid主要组成部分(默认情况)

服务名:squid

主程序:/usr/sbin/squid

主配置文件位置:/etc/squid/squid.conf

监听tcp端口号:3128

默认访问日志文件:/var/log/squid/access.log

正向代理、反向代理以及透明代理的区别和特点:

正向代理:1.通过另一台主机去访问目的地址,提供一个更加有效的访问路径

                 2.可以起到一个缓冲的作用,提高网络的使用效率

                 3.对外有着隐藏作用

反向代理:1.保证内网的安全,通常将反向代理作为公网访问地址

                 2.负载均衡,通过反向代理服务器来优化网站的负载

透明代理:1.客户端根本不需要知道代理服务器的存在,多用于NAT转发中

                 2.不用设置代理就可以通过代理服务器转发到其他地址进行访问,多用于网关防火墙服务器中

squid配置文件常用参数

http_port 3128  \\监听的端口,还可以只监听一个IP http_port 192.168.0.1:3128
cache_mem 64MB  \\缓存占内存大小
maximum_object_size 4096KB  \\最大缓存块
reply_body_max_size  1024000 allow all    \\限定下载文件大小
access_log /var/log/squid/access.log   \\访问日志存放的地方
visible_hostname diaodu.renjie.com    \\可见的主机名
cache_dir ufs /var/spool/squid  100 16 256 
#ufs:缓存数据的存储格式
#/var/spool/squid    缓存目录
#100:缓存目录占磁盘空间大小(M)
#16:缓存空间一级子目录个数
#256:缓存空间二级子目录个数
cache_mgr [email protected]    \\定义管理员邮箱
http_access deny all    \\访问控制

传统代理

1.服务端下载安装squid并启动服务

yum -y install squid

service squid start

查看端口使用情况是否启动成功

2.配置客户端的网卡使其不能正常上网

3.设置客户端配置代理(网不通的主机浏览器设置代理上网)

设置好代理之后就又可以正常上网

补充:编译安装步骤

tar zxf squid-3.4.6.tar.gz

cd squid-3.4.6/

./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-poll --enable-gnuregex

--prefix=/usr/local/squid:安装目录

--sysconfdir=/etc:单独将配置文件修改到其他目录

--enable-arp-ad:可以在规则中设置为直接通过客户端MAC进行管理,防止客户端使用IP欺骗

--enable-linux-netfilter:使用内核过滤

--enable-linue-tproxy:支持透明模式

--enable-async-io=值:异步I/O,提升存储性能,相当于—enable-pthreads --enable-storeio=ufs,aufs // --with-pthreads --with-aufs-thread=值

--enable-err-language="Simplify_Chinese":错误信息的显示语言

--enable-underscore:允许URL中有下划线

--enable-poll:使用Poll()模式,提升性能

--enable-gnuregex:使用GNU正则表达式

useradd -M -s /sbin/nologin squid

chown -R squid:squid /usr/local/squid/var

路径优化:ln -s /usr/local/squid/sbin/* /usr/local/sbin/

透明代理

也就是在有防火墙的情况下,在网关服务器上安装squid实现代理出去上网

代理防火墙网关服务器:eth0:192.168.0.21

                                     eth1:192.168.1.1

web服务器:192.168.1.101

测试机:192.168.1.100

1.下载安装squid

yum -y install squid

2.在网关服务器上配置iptables防火墙策略

iptables -t nat -I PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to 3128

3.修改配置文件

vim /etc/squid/squid.conf

http_port 3128 transparent

注意:修改后重启遇到下图错误

解决方法:

编辑squid.conf配置文件添加

vim /etc/squid/squid.conf

visible_hostname squid.packet-pushers.net

重启服务

访问发现可以不用做SNAT策略就可以访问外面的网页

反向代理(cdn加速)

服务端:192.168.0.101

代理端:192.168.0.105

客户端:192.168.0.100

1.服务端安装好网页

2.代理端下载安装squid

yum -y install squid

3.修改配置文件,修改和添加下面参数

vim /etc/squid/squid.conf

http_access allow all
http_port 80 vhost vport
cache_peer 192.168.0.101 parent 80 0 no-query

cache_peer:缓存策略;172.25.254.4(服务端IP,缓存服务端让客户端查看); parent:没有备用的代理;80:服务端端口为80;0:没有备用端口;no-query:没有备用的代理

4.启动服务用客户端访问代理服务器测试是否成功

service squid start

补充:能反向代理的常用软件还有Varnish和nginx

squid的访问控制

编辑squid.conf配置文件定义ACL列表

vim /etc/squid/squid.conf

格式:acl 列表名称 列表类型 列表内容

对已定义的ACL列表进行限制

http_access allow deny 列表名称

还可以允许多个局域网网段在工作时间上网

acl mylan src 192.168.100.0/24
acl worktime time MTWHF 08:30-17:30
http_access allow mylan worktime
http_access deny all

squid的调度器服务

代理端:192.168.0.105

服务端:192.168.0.101和192.168.0.102

客户端:192.168.0.100

配置文件修改和添加下面参数

vim /etc/squid/squid.conf

http_access allow all
http_port 80 vhost vport
cache_peer 192.168.0.101 parent 80 0 no-query originserver round-robin name=web1
cache_peer 192.168.0.102 parent 80 0 no-query originserver round-robin name=web2

启动或重启服务测试

点击刷新更换页面

发布了37 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/feili12138/article/details/105120256