Linux—squid透明代理
一.什么是透明代理?
透明代理:与传统代理实现的功能是一样,区别在于客户机不需要手动指定代理服务器的地址和端口,而是通过静态路由、防火墙策略将web访问重定向,实际上仍然交给代理服务器来处理,重定向的过程完全是由squid服务器进行的,所以对于客户机来说,甚至不知道自己使用了squid代理服务,因此呢,我们称之为透明模式。透明模式多用于局域网环境,如在Linux网关中启用透明代理,局域网主机无需进行额外的设置就能享受更好的上网速度。
二.实验环境
一台squid服务器:192.168.88.137
一台web服务器:192.168.88.227
一台客户机
三.实验步骤
1)配置squid服务器
squid的具体配置参考前一篇博客
1.添加一块网卡,设置为仅主机模式
cd /etc/sysconfig/network-scripts/
cp -p ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens36
service network restart
2.配置路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward=1 //末行添加
sysctl -p
3.配置squid文件
vim /etc/squid.conf
http_port 192.168.10.1:3128 transparent // 60行添加透明模式
4.重启squid
[root@localhost network-scripts]# service squid restart
正在关闭Squid...
正在启动Squid...
5.添加防火墙规则
清空规则:
iptables -F
iptables -t nat -F
添加:
iptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
iptables -t nat -I PREROUTING -i ens37 -s 192.168.10.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
2)配置web服务器
yum install httpd -y
route add -net 192.168.10.0/24 gw 192.168.88.137 //添加静态路由
systemctl stop firewalld.service
setenforce 0
[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# netstat -natp | grep 80
tcp6 0 0 :::80 :::* LISTEN 38466/httpd
3)配置客户机,设置为仅主机模式
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# service network restart
Restarting network (via systemctl): [ 确定 ]