Squid代理服务器
Squid是一种用来缓冲internet数据的软件。它的工作原理是接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。
Squid是一个高性能的代理缓冲服务器,squid支持FTP、gopher、HTTPS和HTTPS协议。和一般的代理缓存软件不同,squid用一个单一的非模块化的、I/O驱动的进程来处理所有的客户端请求。(不能处理POP、NNPT、RealAudio以及其他类型的东西)
一、安装及服务控制
A:实验条件:开启三台虚拟机我使用是centos6 两台不同网段服务器 一台网关服务器(squid在此配置)
第一台传统代理与透明代理服务器IP地址192.168.1.100
第三台逆向代理服务器IP地址200.1-.1.100(八网卡)
B:第二台squid服务器eth1:192.168.1.1 eth2:200.1.1.1
配置外网服务器的网页设置并进行httpd服务开启使用网关测试访问
使用网关服务器进行网关测试访问
C:开始配置squid传统代理,让内部主机可以上网
我用的是本地squid光盘:
编译安装:
--prefix=/usr/local/squid 指定安装目录
--sysconfdir=/etc 单独将配置文件修改到其他目录
--enable-aep-acl 可以在规划中设置直接通过客户端MAC进行管理,防止客户端使用IP欺骗
--enable-linux-netfilter 使用内核过滤
--enabe-linux-tproxy 支持透明模式
--enable-async-io=值 异步I/O,提升性能
--enable-err-language=”Simplify_Chinnese”
--enable-underscore 允许URL中显示下划线
--enable-poll 使用poll()模式,提升性能
--enable-gnuregex 使用GNU正则表达式
make && make install
D:安装完成后进行创建链接文件,创建用户和组
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
Useradd -M -s /sbin/nologin squid
chown -R squid:squid /usr/local/squid/var
修改Squid 配置文件:
vim /etc/squid.conf
保存并退出
E:Squid运行控制
squid -k parse (检查语法是否正确)
squid -z (-z 选项用来初始化缓存目录)
squid (启动squid服务)
netstat -anpt | grep squid (确认squid服务处于正常监听状态)
确认开启,使用内网尝试访问外网查看是否成功。(因为使用的是传统代理所以我们需要手动设置服务器地址和端口)
EDIT(编辑)— preferences(参数选择)— advanced(高级设置)— NETWORK(网络设置)— settings(设置)
传统代理实验结束。
一、透明代理:(透明代理提供与传统代理一样的服务但是不用进行手动设置)
vim /etc/squid.conf
把60G的http_port 3128 监听地址端口改为 网关IP地址后缀transparent即可(transparent透明,即可支持透明代理)
防火墙进行重定向操作,将本机的80、443端口的请求重定向到3128端口
回到内网服务器进入高级设置(advanced)— connection (连接)— no proxy (没有代理)刷新网络查看是否可以连接,(如果不能用route查看自身网关是否有误或是去网关服务器重启squid服务squid -k reconfigure)
三、反向代理:
设置内网网页重启httpd服务
回到网关服务器上 vim /etc/squid.conf
59G开始查找修改完成后保存并退出
重启squid (squid -k reconfigure)
重启完毕进入外网输入网关IP查看情况
实验完毕