ubuntu11.10上安装Squid配置代理服务器

、缘由

最近寝室开通了ECNU的无线网络,可以链接上被限制只能访问学校的校内资源。周围不少同学都开始使用代理的方式去访问外网。计算中心也有同学专门设了一台代理服务器,同时还在该服务器上配置了ftp。某一次链接他们的代理失败后,发现他们是用Squid做的代理,所以就想着用自己实验室的机器做代理。省得跟那么多人争这一台资源了。

二、准备工作

在说安装Squid并配置之前,先介绍一个Linux里面用来查看流量的小工具:nethogs。可以在http://pkgs.org/下载(搜索nethogs),然后安装。这是一个命令行工具,有点类似top命令。可以动态刷新当前系统上所有联网进程的流量情况,相比于ifconfig只能看系统总流量,要一目了然。使用时,要指定接口名称。如:sudo nethogs eth1,按q可以退出。其实这个使用图形界面的wireshark也可完成,只是刚学到这个工具,想在这里顺便记录下。就先介绍到这儿,后面使用的时候就直接拿来说了。

、开始安装Squid并配置

安装Squid可以在终端输入:sudo apt-get install squid,安装的2.7.stable9版本。当然也可以下载最新的包进行编译安装。可以参见ubuntu的wiki介绍http://wiki.ubuntu.org.cn/Squid很详细的介绍。我使用的是前者,快,方便。然后就是配置的问题了,在/etc/squid目录下有squid.conf配置文件所有的修改都在这个文件里面下面要做的事情就是把允许的客户端IP地址添加进来使用vim打开squid.conf文件,查找到http_access allow localhost后,在后面添加下面两句:

acl my_network src 192.168.0.111/32      #这里的地址是需要使用代理上网的地址,就是我在寝室里面链接ECNU后获得的IP地址

http_access allow my_network                 #将这个地址放到允许访问列表里


再找到http_prot 3128将这一行注释掉,改成

http_port 222.11.11.11:808                      #这里就是将代理服务器的808端口打开来监听,默认squid监听3128端口。前面的地址就是你安装Squid的这台机器的IP地址。

基本配置到这里差不多了,后面发现问题,再找到http_access deny all,在这一行前面添加一行:http_access allow all。保存并退出vim,再终端上输入:squid -k parse;squid -k reconfigure使得修改的配置生效。


、测试代理上网

用笔记本链接台式机的代理进行外网访问。笔记本使用ubuntu12.04,在firefox编辑->选项->高级->网络->设置,点开以后选择手动设置代理。在http代理上输入代理服务器IP地址,和808端口,保存后进行上网浏览。同时,我们在台式机上使用nethogs检测网络流量,如下图

这个时候,虽然台式机上没有其他进程在联网,但仍然可以看到,有好几个在使用网络资源的列表。这都是因为在客户端(笔记本上用firefox在进行网络浏览)在使用。另外,也可以在笔记本上使用wireshark进行抓包,会发现当使用了代理之后,进行网络浏览时,所有的Destination列都是代理服务器的IP地址(这时候笔记本只进行网络浏览,即只有http数据包发送,其他协议数据包是不会往代理服务器上发送的)。

另外,在代理服务器上/var/log/squid目录下有squid.log文件,这个文件会记录客户端的上网记录。恩~~~

、总结

虽然配置好了,能上网了,但是还有好多原理性的东西没弄明白。而且还有更多高级选项可以设置,回去之后再好好研究一下wiki上的说明。

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2012-12-14 16:00  andywangguanxi  阅读(134)  评论(0编辑  收藏  举报