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

1 LINUX下第三方代理服务器软件的选择可以选择的其实还是不少,比如Apache:具有强大的功能、高速度和高效率等特点,但在LINUX下作代理服务器的性能优

1. LINUX下第三方代理服务器软件的选择

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

  2.安装Squid

  其实如今的Linux中基本都有已编译好的Squid,直接安装它即可。如果你手头没有编译好的Squid,可以到FTP://squid.nlanr.net/pub去下载。

  第一步:请记住squid默认情况下是不允许root执行它的,你必须为squid建立新的目录及用户:我们假设用户目录设为/usr/local/squid 。然后执行以下命令解压tar.gz:
  Tar zxvf squid –src.tar.gz

  第二步:进入squid目录,运行“./configure”,此命令熟悉Linux的朋友应该清楚,它会自动检查系统的配置情况,由于没有加参数,故默认安装于此目录下。

  第三步:建立好配置文件后,即可输入make开始编译Squid;最后用make install命令进行Squid安装。

  3. 配置Squid

  这里有必要说明一下,如果你对Squid代理服务器的安全性方面没什么特别的要求,那只需要改一个地方就可以让Squid正常工作!在Squid目录下找到“Squid.conf”并打开,进一步找到“http_access deny all”这一字段,只要将“deny”改成“allow”就一切OK!(一定注意是改前面没有“#”号的那一行)

  而如果要使Squid按照自己的意愿工作,那就得对“squid.conf”作些改动,这里先对此配置文件中会对Squid的工作效率产生影响的几个参数作个简要说明:

  cache_mem:设定Squid占用的物理内存。注意设定时最好不要超过本机物理内存的1/4,否则可能会影响到本机的性能,例如:cache_mem 64M。
  http_port:用于设定Squid的监听端口。默认值为3128,个人认为可改可不改。
  cache_effective_user:设定使用缓存的用户。默认为nobody,一般都要进行改过,建议重新建立一个。
  cache_dir:设定缓存的大小和位置。例如:cache_dir /usr/local/squid/cache 100 32 128,数字100前的部分表示缓存位置,100表示缓存最大不超过100M,32跟128表示目录数。

  清楚了这些主要参数项并做相应改动之后,一般再进行以下两步配置即可,其它项保持默认即完成合符自己要求的最简单配置。

  第一步:我们假设本机网卡IP地址为192.168.0.1,子网掩码为255.255.255.0,打开squid.conf,单独起一行输入以下命令:
acl local_net src 192.168.0.1/255.255.255.0
  第二步:定义允许使用缓存的IP地址组。即前面提到的“http_access allow local_net”命令行。

  4. 在浏览器里运行测试

  在浏览器Mozilla中依次选择“Edit-Preference-Advanced-Proxies”,再选择“Manual Proxy configuration”之后点“View”,即可将Squid服务器的IP地址(172.21.101.132)作为代理服务器地址,默认端口号为 3128。如果你在前面一步“Squid.conf”配置文件中对“http_port:”作了修改,请填入你修改后的端口号。另外,如要控制Squid 的运行,可以单击“开始-服务器设置-服务”,打开“服务配置”窗口,在中间的窗口内点选“Squid”即可;而如果要让LINUX启动时自动启动 Squid,只要勾选前面的复选框就行了。 OK,现在应该可以进行Web浏览了。
         
  如果你要检查Squid是否处于正常运行状态,有两种办法可行:一是命令方式(squid -k check);另一种方法就是进入Squid所在目录查看访问日志文件Access.log,看看浏览过的网页是否都保存在此日志文件中。

  5. 架设总结

   以上介绍的只是利用Squid实现代理的最基本的内容,旨在给大家提供一个架设思路,其实Squid还有不少的高级功能,比如用做二级代理、做为防火墙使用等等。

  LINUX本身就是一套完善的安全系统,而要让Squid更好的适应它,发挥出LINUX+Squid组合的优势,还得深入的去学习Squid的配置文件,因为所有的高级功能都得在配置文件中以命令行的方式去设定。鉴于笔者水平有限,大家可以参阅Squid高级设定的相关报道来进一步设定。不过笔者还是认为应该根据自己的实际情况修改,并不需要配置所有的选项。最后提醒大家,Squid并不支持POP、NNTP两种协议的代理。