squid代理的三种模式实训

squid代理

优势:

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

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

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

作用

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

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

主机名称IP地址角色
client192.168.40.24客户端
squid192.168.40.23 10.10.10.11squid服务器
web10.10.10.12web服务器

一、传统模式

客户端必须在自己的浏览器里指定代理服务器的ip地址和代理服务监听的端口号,才能通过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地址

修改配置信息

[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

添加访问策略

[root@squid ~]# grep "500" /etc/squid/squid.conf

reply_body_max_size 500 MB

[root@squid ~]# systemctl restart squid


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

三、反向代理

实验拓扑图

主机名称IP地址角色
client192.168.40.24客户端
squid192.168.40.23 10.10.10.11squid服务器
web-110.10.10.12web服务器
web-210.10.10.13web服务器

传统模式和透明是为客户端服务的,借助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做反向代理缓存静态页面内容

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

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

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

四、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给注释掉重启服务就会发现访问被拒绝

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

http access allow或者deny列表名称

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

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

以上是 squid代理的三种模式实训 的全部内容, 来源链接: utcz.com/a/49336.html

回到顶部