分享
 
 
 

使用Squid做代理服务器

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

文/杨鹏

说到代理服务器,我们最先想到的可能是一些专门的代理服务器网站,某些情况下,通过它们能加快访问互联网的速度。其实,在需要访问外部的局域网中,我们自己就能设置代理,把访问次数较多的网页保存在缓存中,从而“提高”网络速度。更重要的是,我们能通过代理服务器,达到控制访问权限的目的。在Windows中,有很多这样的软件,如:WinGate、SyGate等,不过,本文要讨论的,是能给你充分自由的Linux下的Squid。

Linux下的代理服务器软件也不是只有Squid,不过在大部分Linux版本中都带有它。

走进“代理”

首先,我们来了解一下代理服务器的工作原理。代理服务器其实就是基于TCP/IP的一种软件,它在TCP的某个端口上进行监听,例如:4444,其他客户机(就是想通过代理上网的那些Windows系统)配置好应用软件,如:IE。其中需要填上代理服务器的端口,即前例中的4444,这样代理服务器才知道你要访问的地址。如果你是合法用户的话,它就取得你想要的网页,然后再通过4444这个端口传递给你,上网时你不会感觉到代理服务器的存在。

而代理服务器的真正意义在于:一、由于它是先将网页下载到本地使用,因此访问频率越高的站点速度就会越快;二、如果你没有访问某个站点的权限而它有,你就能通过它访问到该站点;三、它可以控制你的访问。

当今,通过窄带联入Internet的恐怕仍然占大多数,代理服务器的提速作用也就十分明显了。

熟悉Linux的朋友可能知道,在Linux下有Ipchains可以做路由器,一样可以控制访问权限,但Ipchains的缺点是不支持 DNS解析,如果你想通过它控制客户机的访问,就必须一一指定目的地的IP,如果有谁把Ipchains用在访问Internet上,那他一定是疯了,因为Internet上的IP地址不但多得像天上的星星,而且和星星一样随时都在变化。Squid就不同,它可以指定哪些域后缀不能访问,如:.tw、. net等,这样就把域名对IP的映射交给ISP去做了。

配置举例

在这个例子中,我们使用的是一台普通品牌机做代理服务器,内装两块网卡,第一块eth0接的是本单位的局域网,第二块eth1接的是一台简单的Internet共享器,操作系统是RedHat Linux 6.1,Ipchains和Squid都是系统自带的。

像大多数Linux软件一样,Squid是通过配置文件工作的,它的默认配置文件是/etc/squid/squid.conf,原始文件长达数十页,给出了详细的配置说明,其中真正用得上的,可能只是很小的一部分。看看下面这个配置文件,其实很多选项都是一目了然的:

http_port 4444

#代理服务器监听的端口

cache_dir /var/cache/squid 100 16 32

#缓存目录 大小(兆) 第一级子目录个数 第二级子目录个数

cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log

acl all src 0.0.0.0/0.0.0.0

acl head src 192.168.0.2/255.255.255. 255 192.168.0.3/255.255.255.255

acl normal src 192.168.0.21-192.168. 0.99/255.255.255.255

acl denysite dstdomain tw net

acl denyip dst 61.136.135.04/255.255. 255.255

acl dnsport port 53

http_access allow head

http_access deny denysite

http_access deny denyip

http_access allow normal

http_access deny dnsport

实例分析

上面的内容,就是一个基本Squid所需要的全部配置,是不是很简单?!

从上面我们可以看到,代理服务器使用4444这个端口进行监听,缓存目录为100MB,IP地址为192.168.0.2和 192.168.0.3的用户可访问所有站点,而IP地址为192.168.0.21~99的用户不能访问后缀为tw和net的站点,也不能访问IP地址为61.136.135.04的站点(如果dst 61.136.135.04/255.255.255.255变成dst 61.136.135.04/255.255.255.0,指的是61.136.135.0这个网络)。

很明显,Squid使用acl来定义用户组,并使用http_access来控制用户组的权限。acl后面可以是src(源地址)、dst(目标地址)、proto(协议)、port(端口)、 srcdomain(源域)、dstdomain(目标域)等,Squid的控制功能十分强大,你甚至可以用acl aclname time指定用户组生效的时间,不过要注意,用http_access设置不同用户组的权限时,Squid是按从上到下的顺序执行的,如果你想关闭一个组访问某些站点的权限,就必须把deny的相应句子放在这个组的前面。

另外,Squid文档中特别指出,如果没有相应的access设置,那么默认的权限与最后一行相反,在上例中,一个IP为192.168.0.5的客户未被定义却能访问外部网络,因此,在最后一行设置http_access deny all是很有必要的。

设置完成后,就可以直接运行Squid来启动它,如果配置文件有误,Squid会给出相应的提示。然后再使用Ipchains设置包的转发规则,如只允许客户机使用POP3(110)、SMTP(25)、DNS(53)这几个端口收发信件,浏览网页只能使用代理,这样网络就安全得多了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有