关于squid这个强大的代理软件,已不须多言,自己也测试了一把,不过,在centos7.3安装测试的过程,出现了问题, 在做透明代理的时候,用iptables是可以成功的,而用firewall默认防火墙怎么也不成功,但真正知道了firwall的原理后,其实firewall已经帮我们做好了!请看
安装
#yum install squid -y
禁用selinux
#vi /etc/sysconfig/selinux SELINUX=disabled #setenforce 0 临时关闭
打开路由转发
#vi /etc/sysctl.conf net.ipv4.ip_forward=1
配置squid
#vi /etc/squid/squid.conf
主要修改下面几个,其他的功能,网上应该有一大批讲解的
cache_dir ufs /var/log/squid 10240 16 256 ... http_access allow all //测试,允许所有访问 http_access deny all http_port 3128 transparent //关键,一定要加上,做为透明代理 ... 其他大家看着修改
#squid -k parse 检查配置文件 #squid -z 初始化 #systemctl start squid 启动 #lsof -i :3128 查看端口是否启用
关键,firewall防火墙配置
#firewall-cmd --zone=external --add-interface=eth0 --permanent //外网网卡添加到外网zone #firewall-cmd --zone=internal --add-interface=eth1 --permanent //内网网卡添加到内网zone #firewall-cmd --zone=external --add-service=squid --permanent //关键,添加squid服务 #firewall-cmd --zone=internal --add-service=squid --permanent //应该只要内网区域添加服务即可
#firewall-cmd --zone=external --list-all //列出外网区域信息,默认应该开启了 masquerade:yes如果是no的话 执行如下语句添加 #firewall-cmd --zone=external --add-masquerade --permanent #systemctl restart firewalld //重启防火墙
客户端
添加内网的ip,网关,设为squid服务器的内网IP,DNS设为可用的DNS即可
打开网页,看是否能够用了?
其中有个要注意的,如果squid服务器端,防火墙不添加--add-service=squid 服务的话,虽然客户端也可以正常访问网页,但已经不经过squid来转发了,到时,所有squid的限制功能都会失效。
转载于:https://blog.51cto.com/shenfly231/1915471