文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>squid安装设置(实现透明代理)

squid安装设置(实现透明代理)

时间:2006-05-22  来源:agg230

<1>到www.squid-cache.org下载软件包(我用的是squid-2.5.STABLE13.tar.gz)   <2>我们公司代理服务器主机名称:Pproxy双网卡(接两个子网,然后连入internet)
               OFFICE PC + OFFICE Servers
                            |
                            |
Pproxy.eth0(10.82.0.2)-----HUB--FireWall(10.82.0.3)----internet
                            |
                            |
Pproxy.eth1(192.168.1.2)---HUB  --- OFFICE PC(192.168.1.0/24)
eth1与eth0网关为10.82.0.3
OFFICD PC + Server每个机子为单网卡双IP 10.82.0.0/24 192.168.1.0/24)
<3>以下步骤全部以root用户进行
我用的RHlinux9.0,故先卸载安装系统时默认安装的squid(该Squid不支持MAC控制)
rpm -e squid
  <4>为系统添加squid用户(RHlinux安装squid过程中已经建立了用户squid,我试着用该用户建立缓存,总出错误。所以先删除RHlinux建立的用户,再重新添加)
userdel squid
groupdel squid
useradd squid
groupadd squid
  <5>把squid-2.5.STABLEA13.tar.gz拷贝到/usr/local/squid下(注意,以后启动squid必须用命令[root@pc]#/usr/local/squid/sbin/squid start)解压 安装
tar zxvf squid-2.5.STABLE13.tar.gz
或者
tar xvfj squid-2.5.STABLE.tar.bz2
  <6>改掉目录squid-2.5.STABLE的名字,方便,美观
mv squid-2.5.STABLE squid
  <7>编译
./configure --prefix=/usr/local/squid/ --enable-arp-acl --enable-err-language="Simplify_Chinese" --enable-default-err-languages="Simplify_Chinese" --enable-icmp --enable-linux-netfilter --enable-snmp --enable-storeio=ufs,null --enable-underscore --enable-delay-pools --enable-cache-digests -enable-auth-modules="NCSA"
--prefix=/usr/local/squid :指定安装路径 为便于管理,可用--sysconfdir=/etc把这个文件位置配置/etc --enable-arp-acl #这样可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗 --enable-async-io=80 :这个主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器配置很不错,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比较糟糕就根据实际情况设了。另外此项还另cache文件支持aufs --enable-auth-modules 此编译选项启用认证模块,可以对访问代理用户进行授权。 --enable-cache-digests 使能缓存摘要,本来此项目的是为了在Squid集群服务之间迅速发现缓存对象,这里在本地使用,可以加快请求时,检索缓存内容的速度。 --enable-err-language="Simplify_Chinese" 和--enable-default-err-languages="Simplify_Chinese" :指定出错是显示的错误页面为简体中文 --enable-delay-pools 此选项使能一个延时池,这样能对某些特定的请求限制额定带宽。 --enable-gnuregex:由于Squid大量使用字符串处理做各种判断,加此项能更好处理。 --enable-icmp :加入icmp支持 --disable-ident-lookups :防止系统使用RFC931规定的身份识别方法。 --enable-kill-parent-hack :关掉suqid的时候,要不要连同父进程一起关掉,这个当然要啦 --enable-linux-netfilter #允许使用Linux的透明代理功能。 --enable-poll :应启用Poll()函数而不是select()函数,通常而言poll(轮询)比select要好,但configure(脚本程序)已知Poll在某些平台下失效, 若你认为你比configure编译配置脚本程序要聪明的话,可以用这个选项启用Poll。总之就是用这个可以提升性能就是啦。 --enable-snmp :此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。 --enable-storeio=ufs,null #使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服务器,就需要加上null文件系统。 --enable-underscore :允许解析的URL中出现下划先,因为默认squid会认为带下划线的URL地址是非法的,并拒绝访问该地址。   系统缺省安装目录为/usr/local/squid。     <8>设置squid.conf(以后慢慢续添,现在没空) <8>安装
make all
make install
  <9>查看是否可以启动
先启动缓存
/etc/local/squid/sbin/squid -z
一般出现的问题是squid对安装缓存的目录权限不够则开启适当的权限即可,例如
chown -R squid:squid /etc/local/squid/var
然后查看是否可以启动
/etc/local/squid/sbin/squid -DNdl
最后停留在一行(我忘了那行的标志了)  不动 则表示启动成功
用Ctrl+c终止
如果显示正常启动的正确信息 则现在可以启动Squid了
  <10>启动squid
/etc/local/squid/sbin/squid start
  <11>配置透明代理(squid+iptables一般安装系统默认安装了iptables)
cd /etc/rc.d
touch firewall
vi firewall
######### code(这些代码是师傅写的) ########
aecho "squid start"
/usr/local/squid/sbin/squid start
echo "starting ip forward"
echo "starting iptables rules"
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
/sbin/iptables -t nat -F
/sbin/iptables -t nat -A POSTROUTING -s 10.82.0.0/24 -o eth1 -j SNAT --to-source 192.1.2.190 /sbin/iptables -t nat -A PREROUTING -s 10.82.0.0/24 -i eth0 -p tcp \
         --dport 80 -j REDIRECT --to-port 3128
/sbin/iptables -A INPUT -j ACCEPT -m state \
         --state NEW,ESTABLISHED,RELATED -i eth0 -p tcp \
         --dport 3128
/sbin/iptables -A OUTPUT -j ACCEPT -m state \
        --state NEW,ESTABLISHED,RELATED -o eth1 -p tcp \
        --dport 80
/sbin/iptables -A INPUT -j ACCEPT -m state \
        --state ESTABLISHED,RELATED -i eth1 -p tcp \
        --sport 80
/sbin/iptables -A OUTPUT -j ACCEPT -m state \
        --state ESTABLISHED,RELATED -o eth0 -p tcp \
        --sport 80
######### code ########
chmod u+x firewall
vi /etc/rc.d/rc.local
然后编辑rc.local文件
vi /etc/rc.d/rc.local
添上下面这句:
######### code ########
/etc/rc.d/firewall
######### code ########
作用是在系统启动时,执行firewall脚本。
OK  全部完工   还有些内容没写全 还有好几个功能没实现 等以后有空再写   NND  这么点东西 用了我两天时间才弄完 第一天尝试用RHlinux自带的squid进行配置 因为是rpm包安装系统时默认安装 不支持通过客户端的MAC地址进行管理 第二天开始重装操作系统和squid.tar.gz 下午进行透明代理配置 今天一大早去上班 我安装的Proxy Server还是出了很多问题  上网太慢  收发邮件(内网外网都是)太慢  不能MAC控制  不同IP不能互PING  等等等等问题  都是师傅一一改好的 我还没理出头绪来 只好慢慢添内容喽
相关阅读 更多 +
排行榜 更多 +
奇怪的塔防

奇怪的塔防

策略塔防 下载
梦之屋3D比赛

梦之屋3D比赛

策略塔防 下载
大理石时代

大理石时代

策略塔防 下载