利用squid架设透明代理使“校内网”变“校内”网解决方案

    绝大部分的大学都是要交网费上外网的,师大也不例外,每个月30大洋,并且只有10G的流量,对于穷学生来说,这30块钱也真不是小数目,也够吃一顿了。。。。- -于是好多同学共用一个号,或者甚至不买号。。。。但是呢,对于研究生来说,在教学科研区是有免费帐号可以用的(只能上国内),是不是可以利用下这个流量,然而又不能惹恕网络中心。只做一个校内网校内免登录网关的访问!——于是便有了这篇文章:

    使用软件:
    Ubuntu 9.04 Server/squid2.7
    首先明确下什么是透明代理:
    这里的透明代理跟一般意义上有透明代理不相同,一般意义上的透明代理的解释见这里http://www.cnele.com/CN/mod-article_act-item_aid-1352/1352.htm,是指在同一局域网中,一台装有squid的机器来充当网关,使用户不用设置代理即可访问网络。而我这里说的透明代理相当于是端口映射,即是把服务器的80端口映射到外网的服务器的相应端口。就校内网来说,就是把本地的80端口映射到校内网服务器的80端口,当访问本地的80端口时,本地机器替用户访问校内网再将结果返回给用户,就像校内网在本地的服务器上一样。
    但是仅仅是端口映射是不够的,因为一些大网站,他们有很多的镜像站,并且,为了减小网络带宽的使用,他们给图片服务器以不同的域名,这样的话,只用IP就不能满足需要了,就要用到squid中的“虚拟主机”的功能,这个功能与apache中的虚拟主机的含义相似,可以对不同的域名,映射不同的地址,如果没有这个功能,根本就没法映射大站。
    安全上,要限制用户只能访问相应的网站,防止被当成代理服务器用,须在acl中进行相应的限制操作。
    对于很多子域名的情况,可以用泛域名来写:.xiaonei.com
    基本道理说明白了,下面就讲怎么配置了。
    本文假设用户已经安装了squid,以2.7为例说明:
    1)设置acl src 本地IP范围,acl dst 你映射的网站的IP范围,并在denny和allow中添加
    2)找到http_port 3128改成http_port 80 transparent
    3)设置:cache_peer xiaonei.com parent 80 0 no-query originserver name=xiaonei等等
    4)设置:cache_peer_domain xiaonei xiaonei.com等等
    但是还有个关键问题,就是用户在浏览器里输入xiaonei.com时,他的浏览器不会找到我们费劲心思做的透明代理上啊……怎么办?有办法——让用户修改c:windowssystem32driversetchosts文件(linux里也有,在什么地方?——自己找找吧。。。),在里面添加:iptxiaonei.com 等等(t的意思是TAB键,IP就是我们服务器的IP啊~),可以写个小批处理来搞定。
    OK了,现在,呵呵,不用登录网关,只要用户hosts文件修改下,使xiaonei.com解析到我们的服务器,就可以访问到访问到“校内网”啦!把“校内网”变成了“校内”网,呵呵~~
    其实很多的大网站正是以这种方法为基础来进行加速!!
    其实apache利用虚拟主机和反向代理也可以完成相同的功能,熟悉apache的同志可以试一下~
    写得很简略,具体的配置请自己google下,这里主要讲得是思路。有问题请留言讨论。

7
Ubuntu 9.04 server用apt安装nginx并配置php(fastcgi) 动态IP主机做服务器解决方案

7 Comments

如果要限制访问的用户,怎么限制?
就像CCPROXY需要输入验证信息才允许访问

[…] 北师大的网络情况以前说过了,学校里必须过验证网关才能上外网。为了方便校内同学方便地(不费流量地)升级Ubuntu,也可以充分利用服务器的资源,做了个Ubutu校内的升级源。机器比较老,没有很大的硬盘,做个源的话至少需要上百G的空间,不太现实。于是Kangzj想了这个方法,校内机器能上外网我的机器反向代理一个速度快的源。我选择的是中科大的Ubuntu源(谢谢),速度可以到10M。非常简单,建了一个虚拟主机,然后就解决问题了,下面附上nginx配置文件: […]

我们这一般帐号可以上国内网 如果要上国际网就要在缴费了 按流量或者包月,所以我们一个组搞了个代理来上国际网。服务器端用的是ccproxy。客户端需要在ie的里设置。
按透明代理的说法,客户端可以直接在网关上设置, 服务器是配置一下Squid代理就行了?

[…] squid透明代理已经向大家介绍过了,前两天在Libing大哥的博客逛的时候发现原来也可以用nginx来作透明代理(个人觉得叫正向代理更合理些),学习了下,又丰富了下,给大家分享一下。 server { […]

Leave a Reply