关于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的限制功能都会失效。