重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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.单击 ‘+’ 进行安装。
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. 其他设置可以使用默认值。
TransparentProxy Setting(透明代理设置)
1.Transparent HTTP Proxy(透明代理)-Check to enable(设置为启用),启用后目标端口80的所有请求将转发到代理服务器。
2.Transparent Proxy Interface(透明代理接口)-选择LAN。
3.Bypass Proxy for Private Address Destination(旁路代理私人地址目的地)-必须选上,不然上不了网(虚拟机中测试)。(如果不设置,会有错误提示:您所请求的网址(URL)无法获取)。
4.其他设置默认。
LoggingSettings(日志设置)
可以不设置(特别在硬盘容量不足的时候)!
1.Enable Access Logging(启用访问日志)-Check toenable(设置为启用)。
2.Log Store Directory(日志保存目录)-通常不需要更改目录,因此保持默认值就足够了。如果确实需要更改路径,请记住不要在路径末尾添加“/”。
3.RotateLogs(日志轮流)-定义将保留多少天的日志文件。如果不设置,则一直保存。
4.其他采用默认值。
HeadersHandling, Language and Other Customizations(标题处理,语言和其他设置)
1.Visible Hostname(可见主机名)-如果代理服务器显示任何错误,这将显示在客户端计算机上。可以保持与pfSense服务器的主机名相同的名称。
2.Administrator’s Email (管理员邮箱)–如果发生错误,这也将显示在客户机上。
3.Error Language (错误提示语言)-选择在客户端出现错误信息时显示的语言。
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)。提示:如果增加的速度比节省带宽更重要,则应将其设置为较低的值。建议默认值。
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。
Squid AccessControl Lists(访问控制列表)
根据需要进行设置!
1.单击ACLs选项卡。
2.Allowed Subnets (允许的子网)–输入以CIDR格式(192.168.111.0/24) 允许使用代理的子网。每个条目一行。如果在“SquidGeneral Settings(常规设置)”选项卡上选中了“AllowUsers on Interface(允许接口用户)”时,则无需将“代理接口”子网添加到此列表中。
3.其他设置保证默认就行了。
经过以上设置Squid代理已经正常运行。
如果出现访问网站解析时间过长的问题,还要把DNS解析打开。
以上就是一个基本的Squid透明代理的配置过程。Squid 3.5.24_2 的功能非常多,其他更复杂的配置请自行研究!
视频教程请点击。
2017-06-03