使用Squid做代理服务器的方法_代理服务器

说到代理服务器,我们最先想到的可能是一些专门的代理服务器网站,某些情况下,通过它们能加快访问互联网的速度。其实,在需要访问外部的局域网中,我们自己就能设置代理,把访问次数较多的网页保存在缓存中,从而“提高”网络速度。更重要的是,我们能通过代理服务器,达到控制访问权限的目的。在 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)这几个端口收发信件,浏览网页只能使用代理,这样网络就安全得多了。

时间: 2024-10-10 12:39:41

使用Squid做代理服务器的方法_代理服务器的相关文章

WinGate和Internet连接共享的配合使用方法_代理服务器

提起共享上网来,很多人都会想到WinGate,该软件最大的优点是:通过缓存网页内容,加快了浏览速度.然而,很多用户发现在WinGate的配置很麻烦,想要使用QQ.Foxmail.网络蚂蚁.网际快车.CuteFTP等软件不下一番功夫还真不行!而且,光设置好服务器还不行,客户机也要做相应的设置,非常麻烦.如何才能即利用WinGate的缓存,加快浏览速度,又不用进行复杂的配置呢?在建设恩平电大校园网的过程中,我们找到一个好办法: WinGate和Windows自带的连接共享的合用.具体做法如下: 1.

socks5代理的使用以及ftp多线程下载的简易方法_代理服务器

各位朋友.大家好~ 小弟由于在国外.有时候日子挺无聊的.就想下载点电影看看.个人比较喜欢ftp下载.比较稳定.但是由于很多服务器在国内.国外下载速度很慢.由于实在忍受不了那个下载速度.想了一个暂时的解决办法.大家可以试一下! 所需工具~影音传输带! 代理猎手! That"s all! 1. 到www.google.com 搜索 free socks 5 会出现很多网站.我常去的是http://www.samair.ru/proxy/socks.htm 里面很多的代理.你找sock5类型的.chi

代理猎手验证数据的设置方法_代理服务器

以代理猎手3.1版为例,首先选择"系统"-->"参数设置",进入代理猎手的"运行参数设置"对话框.选择"验证数据设置",点击添加,验证名可以随意起,验证类型就选择默认的"特征字串",在验证地址中输入一个可以用为验证代理服务器的网址,此处最好添入国外网站的地址,例如"http://www.yahoo.com".如果用的是国内网址,验证出来的代理可能不能出国.特征字串中填入访问验证地址

LINUX下架设代理服务器的教程_代理服务器

1. LINUX下第三方代理服务器软件的选择 可以选择的其实还是不少,比如Apache:具有强大的功能.高速度和高效率等特点,但在LINUX下作代理服务器的性能优势并不明显,不建议使用:推荐使用Squid ,有关此软件的相关报道也不少,它由一个主要的服务程序squid,一个DNS查询程序dnsserver和几个管理工具组成,其比较明显的特性就是可以减少服务器等待DNS查询的时间,"Linux+Squid"是最好的代理服务器组合! 2.安装Squid 其实如今的Linux中基本都有已编译

一定要注意使用代理服务器的安全问题_代理服务器

使用代理服务器时,您的所有操作均有可能被记录在案,包括时间.路由.各种申请.用户ID.密码等等,因此有可能导致秘密的泄漏.对于网上其他用户和服务器来说您是安全的,可是对于代理服务器本身来说,您却被一览无余!代理服务器的管理员或者通过其他手段拥有代理服务器管理权限的人能够轻而易举的拥有你的秘密!因此不要使用代理服务器收发涉及个人隐私和机构秘密的电子邮件:不要使用代理服务器从事违法行为:不要使用代理服务器FTP和进行其他需要提供用户 ID和密码的操作!

在LINUX环境下架设代理服务器的方法

代理服务器在目前的http://www.aliyun.com/zixun/aggregation/16327.html">网络环境中应用较广,并在Internet里扮演着一个很重要的角色.今天我就给大家介绍一种在LINUX环境下架设代理服务器的方法,希望能够对各位朋友有所帮助. 代理服务器简介 在架设前,让我们先来了解一下代理服务器的特点.我们这样来理解代理服务器,假设电脑A需要电脑B的数据,电脑A先与电脑C建立连接,电脑C接收到电脑A的数据请求后,再与电脑B建立连接,下载电脑A所请求的数

Python基于scrapy采集数据时使用代理服务器的方法_python

本文实例讲述了Python基于scrapy采集数据时使用代理服务器的方法.分享给大家供大家参考.具体如下: # To authenticate the proxy, #you must set the Proxy-Authorization header. #You *cannot* use the form http://user:pass@proxy:port #in request.meta['proxy'] import base64 proxy_ip_port = "123.456.7

js监听键盘事件的方法_原生和jquery的区别详解_javascript技巧

经常需要监听键盘的事件,以便做更好的操作,基本原理是:监听全局键盘,每一个键盘,当用户按下某一按键时,返回对应的键值,然后再判断用户按下了哪一科按键,键值对应按键的名称在最下面列出,自行比对.去以下介绍两种不同的方式 原生键盘监听事件:按下一次按键,分为三个过程,按下-按住-松开 onkeydown:某个键被按下 onkeypress:某个键盘的键被按下或按住 onkeyup:某个键盘的键被松开 使用方法,一般来说,键盘监听是直接在整个页面文档上进行监听的,也就是document上 以下是原生的

未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序错误的解决方法_数据库其它

最近在做一个导入Excel数据到数据库的程序出现了如下错误: 计算机上注册Microsoft.Jet.OleDb.4.0提供程序错误的解决方法_数据库其它-microsoft.jet.oledb"> 运行环境 数据库:SqlServer2008 R2 OS:Windows Server 2008 R2 IIS:IIS7 解决方法 在应用程序对用的应用程序池的高级设置中设置"启用32位应用程序"为"True"