欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Squid代理服务器

程序员文章站 2022-03-21 17:01:08
...

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 aaa@qq.com    \\定义管理员邮箱
http_access deny all    \\访问控制

传统代理

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

yum -y install squid

service squid start

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

Squid代理服务器

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

Squid代理服务器

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

Squid代理服务器

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

Squid代理服务器

补充:编译安装步骤

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代理服务器

解决方法:

编辑squid.conf配置文件添加

vim /etc/squid/squid.conf

visible_hostname squid.packet-pushers.net

重启服务

Squid代理服务器

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

Squid代理服务器

反向代理(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

Squid代理服务器

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

Squid代理服务器

补充:能反向代理的常用软件还有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

Squid代理服务器

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

启动或重启服务测试

Squid代理服务器

点击刷新更换页面

Squid代理服务器

 

相关标签: 云计算学习笔记