Squid是一个缓存 Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向 Squid 发出一个申请,要 Squid 代替其进行下载,然后 Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户。

按照代理类型的不同,可以将 Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为标准代理和透明代理。


1.标准的代理缓冲服务器

   一个标准的代理缓冲服务被用于缓存静态的网页(例如:html文件和图片文件等)到本地网络上的一台主机上(即代理服务器)。当被缓存的页面被第二次访问的时候,浏览器将直接从本地代理服务器那里请求数据而不再向原web站点请求数据。这样就节省了宝贵的网络带宽,而且提高了访问速度。但是,要想实现这种方式,必须在每一个内部主机的浏览器上明确指明代理服务器的IP地址和端口号。客户端上网时,每次都把请求送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发给客户端浏览器。


2.透明代理缓冲服务器

   透明代理缓冲服务和标准代理服务器的功能完全相同。但是,代理操作对客户端的浏览器是透明的(即不需指明代理服务器的IP和端口)。透明代理服务器阻断网络通信,并且过滤出访问外部的HTTP(80端口)流量。如果客户端的请求在本地有缓冲则将缓冲的数据直接发给用户,如果在本地没有缓冲则向远程web服务器发出请求,其余操作和标准的代理服务器完全相同。对于Linux操作系统来说,透明代理使用Iptables或者Ipchains实现。因为不需要对浏览器作任何设置,所以,透明代理对于ISP(Internet服务器提供商)特别有用。


3.反向代理缓冲服务器

反向代理是和前两种代理完全不同的一种代理服务。使用它可以降低原始WEB服务器的负载。反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于本地WEB服务器和Internet之间,处理所有对WEB服务器的请求,阻止了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向WEB服务器的请求数从而降低了WEB服务器的负载。


可以看一下这篇文章:图解正向代理、反向代理、透明代理,有助于你搞清代理的概念。


在pfsense中,使用较多的是Squid透明代理。本教程将告诉你如何在pfSense 2.33上设置Squid透明代理。本例中Squid的版本号为3.5.24_2 。


安装Squid

1.导航到System > Package Manager(插件管理)。

2.单击Available Packages(可用插件)选项卡。

3.向下翻页找到squid。

4.单击 ‘+’ 进行安装。

                            wKiom1kyMG3i6svXAABvjoQS718969.png


Squid GeneralSettings(常规设置)

1.  导航到 Services > Squid Proxy Server > General选项卡

2.  Enable Squid Proxy(启用Squid代理)-Check toenable(设置为启用)

3.  Keep Settings/Data(保留设置/数据)-如果不想在删除Squid后,还保留大量的缓存数据,建议不选择。

4.  Proxy Interface(代理接口)-选择LAN 。

5.  Allow Users on Interface-如果选中,连接到“Proxy Interface(代理接口)”字段中选择的接口的用户将被允许使用该代理。不需要将接口的子网添加到允许的子网列表中。

6.  其他设置可以使用默认值。

pfSense 2.33 Squid透明代理设置_第1张图片


TransparentProxy Setting(透明代理设置)

1.Transparent HTTP Proxy(透明代理)-Check to enable(设置为启用),启用后目标端口80的所有请求将转发到代理服务器。


2.Transparent Proxy Interface(透明代理接口)-选择LAN。

3.Bypass Proxy for Private Address Destination(旁路代理私人地址目的地)-必须选上,不然上不了网(虚拟机中测试)。(如果不设置,会有错误提示:您所请求的网址(URL)无法获取)。

4.其他设置默认。


pfSense 2.33 Squid透明代理设置_第2张图片


LoggingSettings(日志设置)

可以不设置(特别在硬盘容量不足的时候)!

1.Enable Access Logging(启用访问日志)-Check toenable(设置为启用)。

2.Log Store Directory(日志保存目录)-通常不需要更改目录,因此保持默认值就足够了。如果确实需要更改路径,请记住不要在路径末尾添加“/”。

3.RotateLogs(日志轮流)-定义将保留多少天的日志文件。如果不设置,则一直保存。

4.其他采用默认值。

pfSense 2.33 Squid透明代理设置_第3张图片


HeadersHandling, Language and Other Customizations(标题处理,语言和其他设置)

1.Visible Hostname(可见主机名)-如果代理服务器显示任何错误,这将显示在客户端计算机上。可以保持与pfSense服务器的主机名相同的名称。

2.Administrator’s Email (管理员邮箱)–如果发生错误,这也将显示在客户机上。

3.Error Language (错误提示语言)-选择在客户端出现错误信息时显示的语言。

4.其它选项保持默认就可以了。


pfSense 2.33 Squid透明代理设置_第4张图片


Squid HardDisk Cache Settings(硬盘缓存设置)


1.  单击Local Cache选项卡, 向下翻页找到Squid Hard Disk Cache Settings

2.  Hard Disk Cache Size(硬盘缓存大小)-分配给Squid的最大硬盘缓存。建议将数值设置在4GB以上。

3.  Hard Disk Cache System(硬盘缓存系统)-建议默认设置。

4.  Level 1 Directories(一级目录)-指定硬盘缓存1级目录的数量。最多可以设置256个。目录越多,启动越慢,但在特定条件下可以加快缓存速度。

5.  Hard Disk Cache Location(硬盘缓存位置)-如果硬盘足够存储在“硬盘缓存大小”中指定的缓存大小,请保持默认设置。 如果没有,请选择另外存储的路径,并记住不要在文件路径的末尾添加“/”。

6.  Minimum Object Size(最小对像大小)-小于指定大小的对象(以KB为单位)不会保存在磁盘上。默认值:0(表示没有最小值)建议默认值。

7.Maximum Object Size(最大对像大小)-大于指定大小的对象(以MB为单位)不会保存在磁盘上。 默认值:4(MB)。提示:如果增加的速度比节省带宽更重要,则应将其设置为较低的值。建议默认值。


pfSense 2.33 Squid透明代理设置_第5张图片


Squid MemoryCache Settings(内存缓存设置)

1.  Memory Cache Size(内存缓存大小)-可以为Squid设置缓存的内存越多,缓存过程就越快。建议使用2GB以上。 但不要超过总内存的50%。

2.  Maximum Object Size in RAM(RAM中的最大对象大小)- 高于分配大小的对象不会存储在内存缓存中。建议使用默认值(256 KB)。

3.  Memory Replacement Policy(内存替换策略)-确定在需要存储空间时从内存中清除哪些对象。建议默认heap GDSF。

pfSense 2.33 Squid透明代理设置_第6张图片


Squid AccessControl Lists(访问控制列表)

根据需要进行设置!

1.单击ACLs选项卡。

2.Allowed Subnets (允许的子网)–输入以CIDR格式(192.168.111.0/24) 允许使用代理的子网。每个条目一行。如果在“SquidGeneral Settings(常规设置)”选项卡上选中了“AllowUsers on Interface(允许接口用户)”时,则无需将“代理接口”子网添加到此列表中。

3.其他设置保证默认就行了。

pfSense 2.33 Squid透明代理设置_第7张图片

经过以上设置Squid代理已经正常运行。

 

pfSense 2.33 Squid透明代理设置_第8张图片  

如果出现访问网站解析时间过长的问题,还要把DNS解析打开。

pfSense 2.33 Squid透明代理设置_第9张图片

  


以上就是一个基本的Squid透明代理的配置过程。Squid 3.5.24_2 的功能非常多,其他更复杂的配置请自行研究!


视频教程请点击。

  

2017-06-03