squid代理的三种模式实验总结

  • A+
所属分类:linux技术
摘要

优势:1.提高客户端访问速度;2.隐蔽内部主机的ip地址;3.部署简单,可以实现访问控制;


squid代理

优势:

1.提高客户端访问速度;

2.隐蔽内部主机的ip地址;

3.部署简单,可以实现访问控制;

作用

——代理上网(正向代理,透明代理)

——网站静态页面缓存加速(反向代理)

squid代理的三种模式实验总结

主机名称 IP地址 角色
client 192.168.40.24 客户端
squid 192.168.40.23 10.10.10.11 squid服务器
web 10.10.10.12 web服务器

一、传统模式

客户端必须在自己的浏览器里指定代理服务器的ip地址和代理服务监听的端口号,才能通过squid代理服务器上网。

squid代理的三种模式实验总结

将客户端的网关指向squid服务器

[root@client ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE=Ethernet ONBOOT=yes DNS1=192.168.40.2 IPADDR=192.168.40.24 PREFIX=24 GATEWAY=192.168.40.23 IPV6_PEERDNS=yes IPV6_PEERROUTES=yes [root@client ~]# 

开启路由转发功能

[root@squid ~]# echo "1" >/proc/sys/net/ipv4/ip_forward [root@squid ~]# sysctl -p [root@squid ~]# yum install -y squid [root@squid ~]# systemctl start httpd [root@squid ~]# systemctl enable httpd 

测试访问

[root@client ~]# curl 10.10.10.12 ^C [root@client ~]# curl -x sockers5://192.168.40.23:3128 10.10.10.12 bbs.jw.com-1  

关闭web服务器测试

[root@web ~]# systemctl stop httpd [root@web ~]#  
[root@client ~]# curl -x sockers5://192.168.40.23:3128 10.10.10.12 bbs.jw.com-1  

结论:客户端访问得到的结果是使用的squid的缓存的数据并非web服务器的数据,在大型的网站当中可以使用这种缓存的方式减少web服务器的压力

二、透明模式

透明代理,本质作用是和普通代理是一样的,但是透明代理,客户端不需要在自己的浏览器里指定代理服务器的ip地址和代理服务监听的端口号,给客户端的感觉自己是直接和公网通信,但是必须把网关地址指向代理服务器的内网接口ip地址

squid代理的三种模式实验总结

修改配置信息

[root@squid ~]# vim /etc/squid/squid.conf # Squid normally listens to port 3128 http_port 192.168.40.23 3128 transparent [root@squid ~]# systemctl reload squid [root@squid ~]# iptables -t nat -A PREROUTING -i eno16777736 -s 192.168.40.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128 

访问测试

[root@client ~]# curl  10.10.10.12 bbs.jw.com-1 [root@client ~]# 

限制访问文件的大小

正常情况下

[root@web html]# dd if=/dev/zero of=s count=1M bs=1024 [root@client ~]# wget  10.10.10.12/size.html --2020-09-10 04:16:38--  http://10.10.10.12/s Connecting to 10.10.10.12:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1073741824 (1.0G) [text/html] Saving to: ‘size.html’  30% [===========>                             ] 328,439,473 87.1MB/s  eta 10s    ^C  

squid代理的三种模式实验总结

添加访问策略

[root@squid ~]# grep "500" /etc/squid/squid.conf reply_body_max_size 500 MB [root@squid ~]# systemctl restart squid 

squid代理的三种模式实验总结
总结:传统模式与透明模式的主要区别就是访问的时候不用手动添加代理和端口对用户的体验更加的友好

三、反向代理

实验拓扑图

squid代理的三种模式实验总结

主机名称 IP地址 角色
client 192.168.40.24 客户端
squid 192.168.40.23 10.10.10.11 squid服务器
web-1 10.10.10.12 web服务器
web-2 10.10.10.13 web服务器

传统模式和透明是为客户端服务的,借助squid加快访问web服务的速度,或者是公司内部对员工上网行为做限制使用的,而反向代理模式下的squid的服务对象是web服务器,通过squid来隐藏真实web服务器IP,加快客户的访问速度,还有负载均衡的功能

将两台web服务器的网关指向squid服务器

[root@web-1 html]# grep -i "gateway" /etc/sysconfig/network-scripts/ifcfg-eno16777728 GATEWAY=10.10.10.11 [root@web2 ~]# grep -i "gateway" /etc/sysconfig/network-scripts/ifcfg-eno16777736 GATEWAY=10.10.10.11 

web服务端测试

[root@squid ~]# curl 10.10.10.12 web-1 [root@squid ~]# curl 10.10.10.13 web-2 [root@squid ~]# 

squid配置

[root@squid ~]# grep -A 2 "^http_port" /etc/squid/squid.conf http_port 80 vhost cache_peer 10.10.10.12 parent 80 0 originserver no-query originserver round-robin name=apache1 cache_peer 10.10.10.13 parent 80 0 originserver no-query originserver round-robin name=apache2 [root@squid ~]# systemctl reload squid [root@squid ~]# echo "1" > /proc/sys  sys/           sysrq-trigger  sysvipc/ [root@squid ~]# echo "1" > /proc/sys/net/ipv4/ip_forward [root@squid ~]# sysctl -p 

squid代理的三种模式实验总结

squid做反向代理缓存静态页面内容

[root@web-1 ~]# systemctl stop httpd 

停止其中的一台机器无论怎么刷新访问都是web-2

squid代理的三种模式实验总结

要是两台机器都停止了就会出现访问最后访问的页面

squid代理的三种模式实验总结

四、ACL配置由两部分组成

之所以我们没有做ACL访问策略就能访问是因为在默认的配置文件当中就是包含了这些网段的内容

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规则

我们将其中的 acl localnet src 192.168.0.0/16给注释掉重启服务就会发现访问被拒绝

squid代理的三种模式实验总结

acl 列表名称 列表类型 列表内容

http access allow或者deny列表名称

内容 字段说明
src 源地址
dst 目标地址
port 目标端口
dstdomain 目标域
time 访问时间
maxconn 最大连接
url_regex 目标URL地址
urlpath_regex 整个目标URL地址

备注:要是只是写了acl没有写http access默认是拒绝。