Linux下架设代理服务器.docx
- 文档编号:1596366
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:17
- 大小:30.80KB
Linux下架设代理服务器.docx
《Linux下架设代理服务器.docx》由会员分享,可在线阅读,更多相关《Linux下架设代理服务器.docx(17页珍藏版)》请在冰豆网上搜索。
Linux下架设代理服务器
Linux下架设代理服务器
bye2000
一、代理服务器概述
1.1什么是代理服务器
在TCP/IP网络中,传统的通信过程是这样的:
客户端向服务器请求数据,服务器响应该请求,将数据传送给客户端。
在引入了代理服务器以后,这一过程变成了这样:
客户端向服务器发起请求,该请求被送到代理服务器;代理服务器分析该请求,先查看自己缓存中是否有请求数据,如果有就直接传送给客户端,如果没有就代替客户端向该服务器发出请求。
服务器响应以后,代理服务器将响应的数据传送给客户端,同时在自己的缓存中保留一份该数据的拷贝。
这样,再有客户端请求一样的数据时,代理服务器就可以直接将数据传送给客户端,而不需要再向该服务器发起请求。
1.2 代理服务器的功能
一般说来,代理服务器具有以下的功能:
1.通过缓存增加访问速度
随着Internet的迅猛发展,网络带宽变得越来越珍贵。
所以为了提高访问速度,好多ISP都提供代理服务器,通过代理服务器的缓存功能来加快网络的访问速度。
一般说来,大多数的代理服务器都支持缓存,但是,有的代理服务器也支持FTP缓存。
在选择代理服务器时,对于大多数的组织,只需要缓存功能就足够了。
通常,缓存有主动缓存被动缓存之分。
所谓被动缓存,指的是代理服务器只在客户端请求数据时才将服务器返回的数据进行缓存,如果数据过期了,又有客户端请求一样数据时,代理服务器又必须重新发起新的数据请求,在将响应数据传送给客户端时又进行新的缓存。
所谓主动缓存,就是代理服务器不断地检查缓存中的数据,一旦有数据过期,则代理服务器主动发起新的数据请求来更新数据。
这样,当有客户端请求该数据时就会大大缩短响应时间。
还需要说明的是,对于数据中的认证信息,大多数的代理服务器都不会进行缓存的。
2.提供用私有IP访问Internet的方法
IP地址是不可再生的宝贵资源,假如你只有有限的IP地址,但是需要提供整个组织的Internet访问能力,那么,你可以通过使用代理服务器来实现这一点。
3.提高网络的安全性
这一点是很明显的,如果部用户访问Internet都是通过代理服务器,那么,代理服务器就成为进入Internet的唯一通道;反过来说,代理服务器也是Internet访问部网的唯一通道,如果你没有做反向代理,则对于Internet上的主机来说,你的整个部网只有代理服务器是可见的,从而大大增强了网络的安全性。
1.3 代理服务器的分类与特点
通常的代理服务器分类方法,是从实现的机理分为线路层代理、应用层代理、智能线路层代理等等。
在这里,我想从另外一个角度出发,把代理服务器分为传统代理服务器和透明代理服务器。
我认为有必要好好搞清楚两者的区别,只有真正明白了在地机理,才能在遇到问题时,有章可循,才不会一头雾水,不知从何解决问题。
因此,下面我们就通过具体的实例来说明。
本章的写作思路来源于Paul Russell所写的IPCHAINS-HOWTO。
下面所举的例子也来源于该文章,我觉得我读该文的最大收获在于对部网访问外部网以与外部网访问部网的实现手段有了一个清晰的认识。
当然,这里所谓的部网是指使用私有IP的部网络。
我们的例子都基于以下假设:
你的域名为sample.,你的部网(192.168.1.*)用户通过proxy.sample.(外部接口 eth0:
1.2.3.4;部接口 eth1:
192.168.1.1)的代理服务器访问Internet,换句话说,该代理服务器是唯一一台直接与Internet和部网相连的机器。
并假该设代理服务器上运行着某种代理服务器软件(如squid)。
假设部网中某一客户机为client.sample.(192.168.1.100)。
+-------------------+
|部网(192.168.1.*)| eth1+--------+eth0 DDN
| +------------| proxy |<===============>;Internet
|client198.168.1.100| +--------+
+-------------------+
eth0:
1.2.3.4
eth1:
198.168.1.1
1.3.1传统代理
在以上基础上我们做以下工作:
1.代理服务软件被绑定到代理服务器的8080端口。
2.客户端浏览器被配置使用代理服务器的8080端口。
3.客户端不需要配置DNS。
4.代理服务器上需要配置代理服务器。
5.客户端不需要配置缺省路由。
当我们在客户端浏览器中打开一个web请求,比如“”,这时将陆续发生以下事件:
1.客户端使用某一端口(比如1025)连接代理服务器8080端口,请求web页面“”
2.代理服务器向DNS请求“”,得到相应的IP地址202.99.11.120。
然后,代理服务器使用某一端口(比如1037)向该IP地址的80端口发起web连接请求,请求web页面。
3.收到响应的web页面后,代理服务器把该数据传送给客户端。
4.客户端浏览器显示该页面。
从的角度看来,连接是在1.2.3.4地1037端口和202.99.11.120的80端口之间建立的。
从client的角度看来,连接是在192.168.1.100的1025端口和1.2.3.4的8080端口之间建立的。
1.3.2 透明代理
透明代理的意思是客户端根本不需要知道有代理服务器的存在。
在以上基础上我们做以下工作:
1.配置透明代理服务器软件运行在代理服务器的8080端口。
2.配置代理服务器将所有对80端口的连接重定向到8080端口。
3.配置客户端浏览器直接连解到Internet。
4.在客户端配置好DNS.
5.配置客户端的缺省网关为192.168.1.1.
当我们在客户端浏览器中打开一个web请求,比如“”,这时将陆续发生以下事件:
1.客户端向DNS请求“”,得到相应的IP地址202.99.11.120。
然后,客户端使用某一端口(比如1066)向该IP地址的80端口发起web连接请求,请求web页面。
2.当该请求包通过透明代理服务器时,被重定向到代理服务器的绑定端口8080。
于是,透明代理服务器用某一端口(比如1088)向202.99.11.120的80端口发起web连接请求,请求web页面。
3.收到响应的web页面后,代理服务器把该数据传送给客户端。
4.客户端浏览器显示该页面。
从的角度看来,连接是在1.2.3.4地1088端口和202.99.11.120的80端口之间建立的。
从client的角度看来,连接是在192.168.1.100的1066端口和202.99.11.120的80端口之间建立的。
以上就是传统代理服务器和透明代理服务器的区别所在。
二、各种代理服务器的比较
linux下的代理服务器软件很多,我从freshmeat.(一个著名的linux软件站点)查看了一下,足有六十多个。
但是被广泛应用的只有Apache、socks、squid等几个实践证明是高性能的代理软件。
下面我们分别来比较一下这几个软件:
2.1 Apache
Apache是世界上用的最广泛的服务器,之所以用的最广泛,是因为它强大的功能、高效率、安全性和速度。
从1.1.x版本开始,Apache开始包含了一个代理模块。
用Apache作代理服务器的性能优势并不明显,不建议使用。
2.2 Socks
Socks是一种网络代理协议,该协议可以让客户机通过Socks服务器获得对Internet的完全访问能力。
Scoks在服务器和客户端之间建立一个安全的代理数据通道,从客户的角度看来,Scoks是透明的;从服务器的角度看来,Socks就是客户端。
客户端不需要具有对Internet的直接访问能力(也就是说,可以使用私有IP地址),因为Socks服务器能够把来自于客户端的连接请求重定向到Internet。
此外,Socks服务器可以对用户连接请求进行认证,允许合法用户建立代理连接。
同理,Socks也能防止非授权的Internet用户访问与的部网络。
所以常常把Socks当作防火墙来使用。
常见的浏览器如netscape、IE等可以直接使用Socks, 并且我们也可以使用socsk5的所带的client来使那些不直接支持socks的internet软件使用Socks。
更多的资料可以参考Socks官方站点socks.nec.。
2.3 Squid
对于web用户来说,Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和协议。
和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
Squid将数据元缓存在存中,同时也缓存DNS查询的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。
Squid支持SSL,支持访问控制。
由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度地节约带宽。
Squid由一个主要的服务程序squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以与几个管理工具组成。
当Squid启动以后,它可以派生出预先指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。
2.4 选择
从上面的比较可以看出,Apache主要功能是web服务器,代理功能只不过是其一个模块而已,Socks虽然强大,但有欠灵活,因此我们着重推荐你使用Squid。
下面的章节我们就一起来学习Squid激动人心的特性与相关的安装与配置。
三、安装Squid Proxy Server
3.1获取软件
你可以通过以下途径获取该软件:
1.从Squid的官方站点squid-cache.org下载该软件;
2.从你的linux发行版本中获取该软件;
通常,Squid软件包有两种:
一种是源代码,下载后需要自己重新编译;可执行文件,下载后只需解压就可以使用;另一种是就是RedHat所使用的rpm包。
下面我们分别讲讲这两种软件包的安装方法。
3.2安装软件
我们以目前最新的稳定版本squid-2.3.STABLEX为例。
3.2.1rpm包的安装
1.进入/mnt/cdrom/RedHat/RPMS
2.执行rpm -ivh squid-2.2.STABLE4-8.i386.rpm。
当然,我们也可以在开始安装系统的过程中安装该软件。
3.2.2 源代码包的安装
1.从squid-cache.org下载squid-2.3.STABLE2-src.tar.gz。
2.将该文件拷贝到/usr/local目录。
3.解开该文件 tar xvzf squid-2.3.STABLE2-src.tar.gz。
4.解开后,在/usr/local生成一个新的目录squid-2.3.STABLE2,为了方便用mv命令将 该目录重命名为squid mv squid-2.3.STABLE2 squid;
5.进入squid cd squid
6.执行./configure 可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 架设 代理服务器
![提示](https://static.bdocx.com/images/bang_tan.gif)