为内网用户做加速访问,客户端无需手动设置代理即可访问公网中的web服务器。

Squid代理服务之透明模式部署_Squid代理服务

1)实验拓扑

Squid代理服务之透明模式部署_配置文件_02

2)修改squid配置文件

指定squid为透明模式

vim /etc/squid/squid.conf
http_port   10.10.10.12:3128    transparent(透明模式)
visible_hostname    lvs_backup (不添加也可以)

3)配置iptables策略

vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1 #开启路由转发
#立即生效
sysctl -p

#配置iptables规则
iptables -t nat -A PREROUTING -i ens33 -s 10.10.10.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128       #当入站网卡是ens33,内网网段是10.10.10.0/24,并且它访问的目标端口是80时,就把它重定向到3128这个端口

4)直接访问公网的web服务器

网关需要指向squid服务器的内网ip

echo "GATEWAY=10.10.10.12" >> /etc/sysconfig/network-scripts/ifcfg-ens33

可以看到,客户端无需设置代理即可访问成功。

Squid代理服务之透明模式部署_配置文件_03

5)限制最大代理下载文件大小

在web服务器生成一个大文件

#dd: 是一个用于复制文件和转换数据的命令行工具。
#if=/dev/zero: 这是dd命令的输入选项。/dev/zero是一个特殊设备文件,它会产生连续的空字节数据流作为输入。
#of=1.txt: 这是dd命令的输出选项。它指定了输出文件的名称,即"1.txt"。
#bs=1M: 这是dd命令的块大小选项。bs代表"block size",这里设置为1兆字节(MB),表示每次写入的数据块大小。
#count=1024: 这是dd命令的计数选项。它指定了要复制的数据块数量,这里设置为1024,意味着总共写入1024个1兆字节(MB)的数据块。
    dd if=/dev/zero of=1.txt bs=1M count=1024   
#修改squid配置文件
    vim /etc/squid/squid.conf
    reply_body_max_size 800 MB  #允许从我这里通过的数据量
#重新加载配置文件
    service squid reload

限制数据大小后,再次下载文件会提示您要下载的文件太大,请联系管理员询问。

Squid代理服务之透明模式部署_Squid代理服务_04