频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站服务器架设维护教程 -> 服务器应用技术技巧 -> 服务器-玩转代理(4)

服务器-玩转代理(4)

作者:jz123  来源:www.jz123.cn  发布时间:2005-12-18 4:36:23  发布人:jz123

减小字体 增大字体

代理服务器的实现

本代理服务器系统建立在Windows NT平台上,基于WinSock网络通信接口,使用Microsoft Visual C++,利用MFC类库中提供的两个Socket类CAsyncSocket和Csocket。这两个类不仅使我们可以用面向对象的方法来进行Socket编程,而且它们还分别在较低和较高层次上封装了Windows Sockets API,为程序员开发Socket程序提供了便利。而图2中五种协议的代理实际上是设计此软件时涉及的五个基本对象,这五个对象涉及五种协议和五种代理服务,代理服务不同则对象的属性及行为均不同,因此很自然地用C++中的五个类来对应这五个对象。即CTPSocket(Telnet代理)、CFPSocket(FTP代理)、CSPSocket(SMTP代理)、CPPSocket(POP代理)、CWPSocket(WWW代理),它们都是CAsyncSocket类的子类。显然这样设计既考虑了实际需求,又很好地利用了C++的面向对象程序设计的优点,同时由于每一个类分别代表一种服务,封装了其实现细节,有利于程序的移植、扩展和维护。下面以Telnet代理(CTPSocket)为例来说明实现的细节。

  2.1 TELNET协议

  TELNET为远程登录协议。此协议允许TELNET客户端在远程主机上登录,就好象该客户端是直接连接到远程主机上的一个终端一样。

  会话开始前,用户在客户端输入远程服务器的地址,然后该客户端就与远程服务器建立一个TCP连接。连接建立后开始进入会话,接着远程服务器会给用户显示登录提示符,让用户键入用户名和口令。用户名和口令获得通过后,客户端就与服务器相互传递命令和数据,直到会话结束,然后服务器或客户端关闭连接。

  与其它应用协议不同的是,TELNET允许其客户端与Internet上任何服务器的每个协议端口建立TCP连接,并进行TCP会话,用户可以利用TELNET的这一功能检测其它协议。如用户可以把TELNET客户端连到端口25(SMTP的周知口)来实现Internet e_mail的发送或者连到端口110(POP的周知口)来实现Internet e_mail的接收等等。因此TELNET代理的实现是其它代理实现的基础,可以用TELNET代理来测试其它代理。

  2.2 TELNET代理的实现

  TELNET代理的工作流程可归纳为:启动该代理服务,监听客户端连接。当客户端的连接请求到达代理服务器后,代理服务器根据访问控制文件,以及连接的源和目的地址对连接进行过滤,若是不合法的连接,则予以拒绝。然后代理程序代理服务器端与客户端建立连接,并代理客户端与服务器端建立连接,当三方的连接接通后,代理程序在服务器与客户端之间转发命令及反馈,直到有一方退出或超时时结束代理服务,其流程如图3所示:

其它几个协议的实现与TELNET在TCP连接上是类似的。其中FTP协议特殊一点,它使用了两个TCP连接,控制连接和数据连接。在整个FTP处理过程中,控制连接起传输控制信息的作用,它始终保持主动状态。数据连接负责传输用户需求的数据。当启动FTP代理服务时,系统首先启动守护进程(默认端口为21),FTP客户向该端口发送控制连接请求,与代理服务器建立控制连接,然后代理服务器与远端FTP服务器建立控制连接。控制连接建立成功后,FTP客户与代理服务器(默认端口20)建立数据连接,代理服务器进而与远端FTP服务器建立数据连接,数据连接成功后,FTP客户和远端FTP服务器就可以进行数据的传输了。

  代理服务器的其它功能

  3.1 用户管理

  代理服务器对客户端的管理可以是基于主机,即基于IP地址的管理。这种管理在实现上比较简单,但不灵活。代理服务器是根据各个客户端的IP地址来进行配置的,若客户端主机有所修改,则需相应修改代理服务器的配置。这样的话,对于网络管理员来说,是很不方便的。同时,对于多人共用一台计算机的情况,基于IP地址管理的代理服务器是不能区分各个用户的,这就给管理带来了隐患。另外,基于IP地址管理的代理服务器也不能防止他人盗用问题,只要能打开某台代理服务器认可的计算机,就可访问外部网络。

  本系统中,对客户端的管理是基于用户的管理。用户在使用代理服务器访问外部网络之前,需要先启动一个客户端程序,输入用户名和口令以登录到代理服务器。代理服务器检测用户名和口令,判断该用户是否合法,以及该用户的访问权限,从而对用户访问外部网络进行控制。代理服务器检测完成后,断开与客户端的登录连接。但是代理服务器会定时地主动连接客户端,从而监测已登录用户的状态,当发现用户状态异常(如死机)时,对该用户进行访问封锁,直到用户重新登录。同时,若用户暂时不再访问外部网络,可主动启动客户端程序,显式地注销在代理服务器上的登录,这样就可防止他人在用户离开后,继续使用代理服务器访问外部网络,解决了盗用问题。

  3.2 拨号连接

  拨号连接也是代理服务器中较为常见的一个服务。代理服务器与Internet建立连接一般有两种方法,一种是通过专线直接与Internet建立连接,另一种是通过电话线与拨号服务器建立拨号连接,然后登录到Internet上。虽然代理服务器本身是一个上层软件,它不关心底层连接的具体建立,无论该底层连接是通过专线还是拨号连接。但是为了增强代理服务器的功能,提高其适用范围,本系统提供了拨号连接的服务。

  使用拨号连接功能,需要对代理服务器进行配置。首先要配置好Windows系统的电话拨号功能,建立电话簿登记项。启动代理服务器后,系统调用Windows系统的电话簿登记项进行电话拨号连接,登录到ISP的计算机系统。然后再通过系统的电话拨号配置窗口对登记项进行参数配置。

  结束语

  本文分析了代理服务器工作的基本原理,并对其开发作了较深入的研究。实际开发了一个代理服务器系统,在实验室进行一系列功能测试后,现已在某企业网上正式运行。运行结果显示,系统能稳定地代理各类Internet访问服务;企业利用系统基于用户的管理机制,加强了访问管理和控制。可以说系统很好地适应了企业的需求,在企业的整个管理系统中起了不可忽视的作用。



将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
上一篇文章:服务器-玩转代理(3)
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· 用PhotoShop来手绘西部牛..
· ASP.NET可交互式位图窗体..
· Photoshop曲线工具简单教..
· Fireworks MX 2004系统教..
· Asp与导航文件
· BOX 文字底色快捷下拉菜..
· 王海波炮轰B2B:孙德良5..
· 全国首次网恋调查结果出..
· 优化建议与技巧来自AdSe..
· ADO错误代码
· 金山联手ZCOM合作网游运..
· 站长手记:Discuz!4.1多论..
· 中文的无组件文件上传AS..
· 美前副总统遭"美版胡戈"..
· 实现Java程序跨平台运行..
· 我国首个网络女子公会成..
相关文章
· 服务器-玩转代理(3)
· 服务器-玩转代理(2)
· 服务器-玩转代理(1)
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号