1.squid代理的工作原理
客户机想访问163网站时,首先向代理服务器请求web页面,代理服务器首先会查看自己的缓存,如果缓存中有,则直接发送给客户机,如果缓存表中不存在,他会向inter发送请求,当获得返回web页面后,将数据发送给客户端的同时保存在缓存表中,方便下次使用
2.根据实现的不同,代理大概分为两种:
传统代理:
首先必须要有代理客户端,浏览器就可以,需要手工指定代理服务器的IP地址
透明代理:
它是利用Linux网关进行代理服务的,因此只需要设置网关即可,不需要指定代理服务器IP
3.编译要用到的参数
./configure --prefix=/usr/local/squid //指定squid服务安装的目录 --sysconfdir=/etc/ //单独将配置文件存放到其他目录 --enable-arp-acl //可以在规则中设置直接通过客户端mac进行管理,防止客户端使用IP欺骗 --enable-linux-netfilter //使用内核过滤 --enable-linux-tproxy //支持透明模式 --enable-async-io=100 //异步I/O,提升存储性能 --enable-err-language="Simplify_Chinese" //错误信息显示的语言 --enable-underscore --enable-poll //使用poll()模式,提升性能 --enable-undersource //允许URL中有下划线 --enable-gnuregex //使用GNU正则表达式
4.开始配置
部署环境1.配置yum源
wget -O /etc/yum.repos.d/centos.repo https://mirrors.aliyun.com/repo/Centos-7.repo sed -i ‘s/$releasever/7/g’ /etc/yum.repos.d/centos.repo yum clean all
2.安装开发工具
yum -y install gcc-c++
3.编译安装squid
这里我们用的是3.4.6
tar xvf squid-3.4.6.tar.gz
4.编译安装squid
./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl --enable-linux-netfilter --enable-async-io=100
5.优化路径
ln -s /usr/local/squid/sbin/* /usr/local/sbin/ useradd -M -s /sbin/nologin squid chown -R squid.squid /usr/local/squid/var/
6.修改配置文件就,加入以下几列7.检测配置文件是否正常
squid -k parse8.启动squid
squid
重启squid
squid -k reconfig
9.配置iptables
iptables -t nat -I PREROUTING -s 192.168.81.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128 iptables -t nat -I PREROUTING -s 192.168.81.0/24 -p tcp --dport 443 -j REDIRECT --to-ports 3128
10.部署web网页
yum -y install httpd echo "squid代理服务器" > /var/www/html/index.html
11.客户端指定代理服务器地址
右击网络->属性->internet选项->连接->局域网设置