什么是代理服务器,为什么叫做“代理“?好处是什么,如何在C#程序中链接到代理服务器?

什么是代理服务器,为什么叫做“代理“?好处是什么,如何在C#程序中链接到代理服务器?,第1张

代理程序的种类非常多,根据协议不同可以分成HTTP代理服务程序、FTP代理服务程序等,而运行代理服务程序的服务器也就相应称为HTTP代理服务器和FTP代理服务器。本文将介绍的Web代理服务程序代理的是HTTP协议。

  一、网络代理程序的优点

  代理服务所起的是一个桥的作用,它是网络信息的中转站。在网络中应用代理服务一般是基于以下几个原因:

  (1)充分利用IP地址资源。在局域网中,一般对外的IP地址都是非常有限的,为了保证局域网内部的主机都能够访问互联网资源,通过网络代理就可以实现。

  (2)能够保证网络安全。网络代理可以充当内部网和互联网之间的防火墙,通过过滤IP地址,限定某些IP地址对外部资源的访问。

  (3)能够有效地隐藏自己的IP地址和主机名。由于所有对外网的请求都是通过代理服务器实现的,所以目的主机只能知道代理服务器的IP地址。

  (4)提高网络速度。通常代理服务器都设有一个较大的硬盘缓冲区,它存储界数据,当你再访问相同的数据时,则可以直接从缓冲区中取出信息,从而提高访问速度。

  二、网络代理的类型及实现原理

  网络代理服务根据工作层次,一般可分为应用层代理、传输层代理和SOCKS代理。应用层代理是工作在TCP/IP参考模型的应用层之上,它支持对应用

层协议(如HTTP、FTP)的代理。它提供的控制最多,但是不灵活,必须要有相应的协议支持。如果协议不支持代理(如SMTP和POP),那就只能在应

用层以下代理,也即传输层代理。传输层代理直接与TCP层交互,更加灵活。要求代理服务器具有部分真正服务器的功能:监听特定TCP或UDP端口,接收客

户端的请求同时向客户端发出相应的响应。另一种代理需要改变客户端的IP栈,即SOCKS代理。它是可用的最强大、最灵活的代理标准协议。SOCK V4

允许代理服务器内部的客户端完全地连接到外部的服务器,SOCK V5增加了对客户端的授权和认证,因此它是一种安全性较高的代理。本节后面介绍的代理是

一种应用层上面的代理,所代理的协议是HTTP,也就是经常见到的Web代理。

  正如上面所说,网络代理就是一个连接客户端(需要代理的计算机)和服务器端(提供访问资源的服务器)的桥。要实现这种桥的功能,网络代理就必须满足下列条件,其实也是代理服务的运行的流程:

  (1)接收并解析客户端的请求。

  (2)创建到服务器的新连接,并转发客户端的请求信息。

  (3)接收服务器反馈的信息。

  (4)解释服务器的响应并将该响应传回给客户端。

  网络代理虽然有很多优点,但由于使用代理后,自己对网络的所有请求都是通过代理服务器这个中间人来实现的,所以有可能碰上存有恶意的人监听你的输入的内容。同样,如果选择的代理服务器的带宽比较小,使用代理还会降低网速。

  总而言之,使用代理有利有弊,使用者要根据自身的情况来决定。但无论如何,选择一个好的代理服务器是非常重要的。

  三、C#实现Web代理服务程序

  经过了上面的介绍,我想大家对代理服务应该有了一个基本的认识,下面就让我们通过一个实例来深入体会一下如何用C#实现Web代理服务。Web代理服务的功能顺序是这样的:

  (1)侦听端口,等待客户端浏览器发送来的Web请求信息。

  (2)接收到客户端Web请求信息后,解析出目标Web服务器的地址,并创建一个Socket实例,并以此实例连接Web服务器上。

  (3)通过创建的Socket传送客户端的Web请求数据包到Web服务器的80端口。

  (4)接收Web服务器返回的页面数据。

  (5)把接收来的数据传送到客户端,从而实现Web代理。

  客户端对某个Web地址的浏览,可能要传送很多的Web请求信息(比如网页中的图像、Flash等),为了更快更准确地处理这些信息,Web代理服务

程序通常采用多线程来处理每一个Web请求。细心的读者可能会发现,处理每一个客户端的Web请求信息,代理服务器软件都要使用二个Socket,一个是

用来接收/传送客户机的信息,一个是和Web服务器进行交流。为了区分这二个Socket,我们把和服务器对话的称为“服务Socket”,和客户端机器

对话的称为“客户Socket”。

  下面就开始Web代理服务程序的编写工作。这个实例包含三个部分内容:

  1创建一个Web代理类。

  2Web代理服务的类的实例化。

  3如何通过这个Web代理类的实例实现Web代理服务。

  (一)创建一个Web代理类

  具体操作步骤如下:

  1启动Visual StudioNet,依次选择“文件”、“新建”、“项目”菜单后,在弹出“新建项目”对话框中将“项目类型”设置为

“Visual C#项目”,将“模板”设置为“Windows应用程序”,在“名称”文本框中输入“WebProxy”,在“位置”文本框中输入

“E:VSNET项目”,然后单击“确定”按钮,这样项目便建立好了。

  2依次选择菜单“项目”、“添加类”,将弹出“添加新项”对话框。

  3将“模板”设置为“类”。

  4在“名称”文本框中输入“Proxy”,单击“打开”按钮

  5在“解决方案资源管理器”窗口中,双击Proxycs文件,进入Proxycs文件的编辑界

  6在Proxycs源文件的开头,添加下列代码,下列代码是导入Proxycs中要使用到的命名空间:

  using System;

  using SystemNet;

  using SystemNetSockets;

  using SystemText;

  using SystemIO;

  7用下列构造函数替代默认的构造函数。下面的代码是在Proxy类中创建一个构造函数。Proxy类只有一个构造函数,并且这个构造函数只有一个参数,这个参数是Socket对象,它主要用来和客户端进行数据交换,是一个“客户Socket”:

  public Proxy(Socket socket)

  {

  //

  // TODO: 在此处添加构造函数逻辑

  //

  thisclientSocket = socket ;

  }

  8在定义Proxy类代码区中加入下列代码,下列代码是定义Proxy类中的使用的一些变量,这些变量主要是在后面的定义Run方法中使用。

  Socket clientSocket;

  Byte[] read = new byte[1024];

  //定义一个空间,存储来自客户端请求数据包

  Byte [] Buffer = null;

  Encoding ASCII = EncodingASCII;

  //设定编码

  Byte[] RecvBytes = new Byte[4096];

  //定义一个空间,存储Web服务器返回的数据

  9创建Proxy类中的Run方法。Run方法是Proxy类中唯一的方法。其功能是从客户端接收HTTP请求,并传送到Web服务器,然后从

Web服务器接收反馈来的数据,并传送到客户端。为了实现这二个不同方面的数据传送,Run方法中是通过两个Socket实例来实现的。在编写Run方法

的时候,要注意下面两点:

  (1)由于HTTP建立于TCP协议之上,所以创建的Socket实例应该使用TCP协议。下面代码是创建可以传送HTTP请求命令到Web服务器和接收来自Web服务器反馈来信息的Socket实例:

  Socket IPsocket = new Socket(AddressFamilyInterNetwork, SocketTypeStream, ProtocolTypeTcp);

  (2)另外一个Socket是在代理服务程序侦听端口号,接收连接请求时候得到的,所以应该以此Socket为参数,利用Proxy类中的构造函数来创建一个Proxy实例。此Socket实现从客户端接收HTTP请求信息,并传送数据到客户端。

  Socket创建和使用是实现Web代理软件的关键。在构造函数代码后面,输入下列代码:

  public void Run()

  {

  string clientmessage = " " ;

  //存放来自客户端的HTTP请求字符串

  string URL = " " ;

  //存放解析出地址请求信息

  int bytes = ReadMessage(read, ref clientSocket, ref clientmessage);

  if (bytes == 0)

  {

  return ;

  }

  int index1 = clientmessageIndexOf(' ');

  int index2 = clientmessageIndexOf(' ', index1 + 1);

  if ((index1 == -1) || (index2 == -1))

  {

  throw new IOException();

  }

  string part1 = clientmessageSubstring(index1 + 1, index2 - index1);

  int index3 = part1IndexOf('/', index1 + 8);

  int index4 = part1IndexOf(' ', index1 + 8);

  int index5 = index4 - index3;

  URL = part1Substring(index1 + 4, (part1Length - index5) - 8);

  try

  {

  IPHostEntry IPHost = DnsResolve(URL);

  ConsoleWriteLine("远程主机名: " + IPHostHostName);

  string [] aliases = IPHostAliases;

  IPAddress[] address = IPHostAddressList;

  ConsoleWriteLine("Web服务器IP地址:" + address[0]);

  //解析出要访问的服务器地址

  IPEndPoint ipEndpoint = new IPEndPoint(address[0], 80);

  Socket IPsocket = new Socket(AddressFamilyInterNetwork, SocketTypeStream, ProtocolTypeTcp);

  //创建连接Web服务器端的Socket对象

  IPsocketConnect(ipEndpoint);

  //Socket连Web接服务器

  if (IPsocketConnected)

  ConsoleWriteLine("Socket 正确连接!");

  string GET = clientmessage;

  Byte[] ByteGet = ASCIIGetBytes(GET);

  IPsocketSend(ByteGet, ByteGetLength, 0);

  //代理访问软件对服务器端传送HTTP请求命令

  Int32 rBytes = IPsocketReceive(RecvBytes, RecvBytesLength, 0);

  //代理访问软件接收来自Web服务器端的反馈信息

  ConsoleWriteLine("接收字节数:" + rBytesToString());

  String strRetPage = null;

  strRetPage = strRetPage + ASCIIGetString(RecvBytes, 0, rBytes);

  while (rBytes > 0)

  {

  rBytes = IPsocketReceive(RecvBytes, RecvBytesLength, 0);

  strRetPage = strRetPage + ASCIIGetString(RecvBytes, 0, rBytes);

  }

  IPsocketShutdown(SocketShutdownBoth);

  IPsocketClose();

  SendMessage(clientSocket, strRetPage);

  //代理服务软件往客户端传送接收到的信息

  }

  catch (Exception exc2)

  

  }

  

  //接收客户端的HTTP请求数据

  private int ReadMessage(byte [] ByteArray, ref Socket s, ref String clientmessage)

  {

  int bytes = sReceive(ByteArray, 1024, 0);

  string messagefromclient = EncodingASCIIGetString(ByteArray);

  clientmessage = (String)messagefromclient;

  return bytes;

  }

  

  //传送从Web服务器反馈的数据到客户端

  private void SendMessage(Socket s, string message)

  {

  Buffer = new Byte[messageLength + 1];

  int length = ASCIIGetBytes(message, 0, messageLength, Buffer, 0);

  ConsoleWriteLine("传送字节数:" + lengthToString());

  sSend(Buffer, length, 0);

  }

  至此,Proxy类的定义过程就完成了。

  (二)利用Proxy类,实现Web代理

  下面是利用Proxy类实现Web代理程序的具体实现步骤,Proxy类被定义在命名空间WebProxy中:

  1在Visual Studio Net的代码编辑器中打开Class1cs文件,进入Class1cs的代码编辑界面。

  2在Class1cs源文件的开头导入下列命名空间:

  using System;

  using SystemNet;

  using SystemNetSockets;

  using SystemText;

  using SystemIO;

  using SystemThreading;

  using WebProxy;

  3在Main函数中添加下列代码,下列代码是利用Proxy类,来实现Web代理程序:

  const int port = 8000 ;

  //定义端口号

  TcpListener tcplistener = new TcpListener(port);

  ConsoleWriteLine("侦听端口号: " + portToString());

  tcplistenerStart();

  //侦听端口号

  while (true)

  {

  Socket socket = tcplistenerAcceptSocket();

  //并获取传送和接收数据的Scoket实例

  Proxy proxy = new Proxy(socket);

  //Proxy类实例化

  Thread thread = new Thread(new ThreadStart(proxyRun));

  //创建线程

  threadStart();

  //启动线程

  }

  保存上面的所有步骤,这样一个简单Web代理程序就算是完成了。此Web代理程序侦听的是8000端口号。

  (三)测试Web代码程序

  Web代理程序要通过二台计算机才能够实现,其中的一台计算机运行Web代理程序充当Web代理服务器,另外一台计算机充当客户机,通过Web代理服务器来浏览网页。在确定Web代理软件运行后,需要对客户机进行进行必要的设置:

  1打开IE浏览器。

  2依次选择“工具”、“Internet选项”,在弹出的“Internet选项”对话框中选择“连接”页面,单击其中的“局域网设置”按钮,在弹

出的“局域网(LAN)设置”对话框,选择“为LAN使用代理服务器(X),(这些设置不会应用于拨号和***连接)”多选框,并在其中的“地址”文本框

中输入代理服务器的IP地址,比如“10138198213”,在“端口”文本框中输入“8000”。

  此时客户端的设置就完成了。在确定IP地址为“10138198213”的这台计算机已经运行上面介绍的Web代理程序后,打开客户端的IE浏览器,并输入要浏览的网址,就可以通过Web代理服务器来浏览网页了。

  四、总结

  至此一个简单的Web代理服务软件就算基本完成了。虽然代理服务的实现原理相对简单,但具体实现还是很繁琐的。网络代理是一个内容丰富,实现复杂的论

题,本节介绍的代理服务软件,无论在实现的协议种类,还是实现的功能,都只能算很小的一部分。希望各位能够通过本文的介绍,结合其他相关的知识,创造出功

能更强大、安全性更高,使用更稳定的网络代理服务程序来。

什么是代理服务器

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他 Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回你所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的缓冲池,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果你的浏览器所请求的数据就在它本机的存储器上而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器。一般用户的可用带宽都较小,但是通过带宽较大的代理服务器与目标主机相连能大大提高浏览速度和效率。更重要的是它所提供的安全功能。通过代理服务器访问目标主机,可以将用户本身的IP地址隐藏起来,目标主机能看到的只是代理服务器的IP地址而已。很多网络黑客就是通过这种办法隐藏自己的真实IP,从而逃过监视。

常用代理的类型可以按所采用协议类型分为http代理、socks4代理和socks5代理。不论采用哪种代理,都需要知道代理服务器的一些基本信息:

① 代理服务器的IP地址

② 代理服务所在的端口

③ 这个代理服务是否需要用户认证?如果需要,您要向提供代理的网络管理员申请一个用户和口令。

什么是HTTP代理 什么是socks代理

什么是HTTP代理:www对于每一个上网的人都再熟悉不过了,www连接请求就是采用的http协议,所以我们在浏览网页,下载数据(也可采用ftp协议)是就是用http代理。它通常绑定在代理服务器的80、3128、8080等端口上。

什么是socks代理:相应的,采用socks协议的代理服务器就是SOCKS服务器。是一种通用的代理服务器。Socks是个电路级的底层网关,是 DavidKoblas在1990年开发的,此后就一直作为Internet RFC标准的开放标准。Socks 不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、 HTTP 层代理不同,Socks 代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上。

如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问 Internet就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的http代理,它和SOCKS是不同的。因此,您能浏览网页不等于 您一定可以通过SOCKS访问Internet。常用的防火墙,或代理软件都支持SOCKS,但需要其管理员打开这一功能。如果您不确信您是否需要SOCKS或是否有SOCKS可用,请与您的网络管理员联系。为了使用socks,您需要了解一下内容:

① SOCKS服务器的IP地址

② SOCKS服务所在的端口

③ 这个SOCKS服务是否需要用户认证?如果需要,您要向您的网络管理员申请一个用户和口令

知道了上述信息,您就可以把这些信息填入“网络配置”中,或者在第一次登记时填入,您就可以使用socks代理了。

在实际应用中SOCKS代理可以用作为:电子邮件、新闻组软件、网络传呼ICQ、网络聊天MIRC和各种游戏应用软件当中。

什么是socks4和socks5代理

socks4和socks5都属于socks协议,只是由于所支持的具体应用不同而存在差异。socks4代理只支持TCP应用,而socks5代理则可以支持TCP和UDP两种应用。不过由于socks5代理还支持各种身份验证机制,服务器端域名解析等,而socks4代理没有,所以通常对外开放的 socks代理都是socks4代理,因此,UDP应用通常都不能被支持。也就是说,socks4能干的socks5都可以干,反过来就不行了

分类: 电脑/网络 >> 互联网

解析:

代理服务

一什么是代理服务器

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去获得网络信息。形象的说,它是网络信息的中转站。Proxy Server是浏览器和web服务器之间的一台服务器。经过设置代理后,浏览器不是直接与目标web服务器连接,而是向代理服务器发出请求,Request数据会先送到代理服务器,由代理服务器直接与目标web服务器连接,并将收到的数据中转给你的浏览器。

大部分代理服务器都具有缓冲功能,就像一个大的Cache,不断将新取得的数据存储到它自己的本地存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从web服务器上取数据,而是直接将自己的本地存储器上的数据发送给浏览器,这样就能显著提高浏览器的速度和效率。

另外,Proxy Server是Inter链路级网关所提供的一种重要的安全功能,其工作主要在开放系统互联模型(OSI)的会话层(Session),从而起到防火墙的作用。

二代理服务器的主要功能

1充当防火墙

代理服务器可以连接Inter和Intra,充当起防火墙的角色,因为所有内网用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内网。同时可以直接设置IP地址过滤,限制内网对外部的访问权限;两个没有互联的内网,也可以通过第三方的代理服务器进行连接。

2隐形

使用代理服务器可以隐藏自己计算机的真实IP地址,要做的访问都交由代理服务器来完成,这样就可以有效地隐藏自己,突破IP封锁和限制。

3提高访问速度

如果自身带宽不能满足要求,可以连接带宽较大的代理服务器,把一些大流量交由代理服务器完成。同时,一般代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界信息通过时,同时也将保存到缓冲区中,当其他用户再访问相同的信息时,则直接有缓冲区取出信息,传给用户,从而达到提高访问速度的目的。

三代理服务器的分类

代理服务器的类型很多,但总的来说可以分为三种:全匿名代理、普通匿名代理和透明代理。

下面来详细描述一些代理类型。

HTTP代理:代理客户机的HTTP访问,主要是代理浏览器访问网页,端口一般为80、8080、3128。

FTP代理:能够代理客户机上的FTP软件访问FTP服务器,端口一般为21、2121。

RTSP代理:代理客户机上的Realplayer访问real流媒体服务器的代理,端口一般为554。

POP3代理:代理客户机上的邮件软件用POP3方式收发邮件,端口一般为110。

SOCKS代理:SOCKS代理只是简单的传递数据包,而不关心任何应用协议,所以SOCKS代理服务器要比其他类型的代理服务器速度要快的多。

SOCKS代理又分为SOCKS4和SOCKS5。

SOCKS4只支持TCP协议(传输控制协议)。SOCKS5则即支持TCP协议又支持UDP协议(用户数据包协议),还支持各种身份验证机制、服务器端域名解析等。

全匿名代理:它不改变客户机的请求,这样在客户机看来就好像有个真正的客户浏览器在访问它,这时客户的真实IP地址是隐藏的,服务器端不会认为我们使用了代理。

普通匿名代理:能隐藏客户机的真实IP,但会改变我们的请求信息,服务器端可能会认为我们使用了代理(仅仅可能,一般来说没问题),但其实这种代理的安全性可能比全匿名代理更高,有的代理甚至会剥离客户机发送信息中的一部分,这样服务器端就根本探测不到我们所用的操作系统版本和浏览器版本。

透明代理:也叫简单代理,不但改变我们的请求信息,还会传诵真实的IP地址。

Proxifier是一款SOCKS5客户端通用代理软件,支持网络应用程序通过HTTPS或SOCKS代理上网。Proxifier支持XP,Vista,Win7和MACOS等操作系统,支持SOCKS4,SOCKS5,HTTP,TCP和UDP等协议;Proxifier还支持玩各种网页游戏,与CCProxy相接合后,游戏速度非常流畅。2Proxifier功能1)如果网络应用程序不能设置代理,或者没有设置代理的功能,可以使用Proxifier代理上网。2)客户端设置Proxifier后,所有网络应用程序都可以实现代理上网,不需要逐一设置代理。3安装CCPrxoxy在服务器上安装代理服务器CCProxy(假设代理服务器IP地址是:1921681123,SOCKS端口是1080)。CCProxy的安装方法,详细请参考:“如何简单快捷的安装代理服务器CCProxy”4Proxifier设置很多用户希望代理客户端可以全局代理,但是不是知道proxifier怎么用,也不清楚proxifier怎么设置,请参考:41设置代理1)在客户端上安装Proxifier。2)在Proxifier的“配置文件”菜单上,单击“代理服务器”选项。图1‑13)在弹出的“代理服务器”对话框中,单击“添加”按钮。图1‑24)在弹出的“代理服务器”对话框中,输入代理服务器的IP地址和SOCKS端口,选中“SOCKS版本5”单选按钮,再单击“确定”按钮。图1‑35)在“代理服务器”对话框中,单击“检查”按钮。图1‑46)在弹出“代理检查器”对话框中,将显示测试信息。图1‑542设置代理规则1)在Proxifier的“配置文件”菜单上,单击“代理规则”选项。图1‑62)在弹出的“代理规则”对话框中,选中“1921681123”复选框,单击“动作(直接/拦截)”组合框,选择“ProxySOCKS1921681123”,再单击“确定”按钮。图1‑73)设置完成,客户端上所有的网络应用都可以通过CCProxy代理上网。注意:1)使用通用代理软件Proxifier的客户端,所有网络应用程序必须取消代理设置,否则客户端代理上网会失败。2)通过Proxifier代理上网,客户端必须先启动Proxifier,才能访问互联网。

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。更重要的是:Proxy Server(代理服务器)是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层。主要的功能有:

1突破自身IP访问限制,访问国外站点。教育网、169网等网络用户可以通过代理访问国外网站。

2访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源 的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育 网开放的各类FTP下载上传,以及各类资料查询共享等服务。

3突破中国电信的IP封锁:中国电信用户有很多网站是被限制访问的,这种 限制是人为的,不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国 外的代理服务器试试。

4提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界 的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。

5隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。

1IE50以上版本中设置代理:菜单栏“工具”->下拉菜单“Internet选项”->选项卡“连接”->在“局域网设置”中选中您目前 使用的连接,然后点击右侧的“设置”->在中间的“代理服务器”栏选中“使用代理服务器”->在“地址” 和“端口”栏输入本站提供的HTTP代理服务器->确定->确定。

2MyIE2中设置代理服务器:菜单栏“选项”——》“代理服务器”——》“代理设置”——》在输入框中输入标准格式的代理服务器,如XXXXXXXXXXXX:端口,然后“确定”并退出,继续,菜单栏“选项”——》“代理服务器”——》然后选择刚才输入的代理服务器

3腾讯浏览器(TT浏览器)中设置代理服务器:菜单栏“工具”——》“WWW代理”——》“设置代理”——》在代理设置对话框中,点击“新增”——》在代理设置区中,输入代理,然后“确定”并退出,继续,菜单栏“工具”——》“WWW代理”——》然后选择刚才输入的代理服务器

随着Internet的快速发展,企业、学校和个人对网络资源和服务的需求呈几何级数的增长。连入因特网的计算机越来越多,促进信息产业发展的同时改变了我们生活、学习和工作的方式,因特网成为生活不可或缺的一部分。网络高速发展同时伴生了IP地址耗尽、海量主机同时访问带宽的争用和各单位网络费用剧增等问题。例如:学术资源丰富、信息全面的教育科研网(CERNET)下属单位按照访问流量收费(出国流量更贵),巨量的网络流量将带来沉重的费用负担。同时人们日益关注网络安全运行这个重要前提。互联网上常出现的黑客和病毒等不安全行对各单位直接联网电脑中安全要求较高的数据和内部网(Intranet)的安全造成严重威胁。如何解决以上问题、提高网络安全性,更安全、快捷经济的提高网络的利用率呢?建立局域网代理服务器(Proxy Server)可以解决上述问题,本文就基于软件的方案做一个探讨。

一、 局域网代理服务器的功能和作用:

代理服务器是伴随着Internet应运而生的网络服务技术,对校园局域网、小企业网络和家庭网络用户非常实用,可以缓解IP地址不足、加快客户机(Client)访问速度、控制网络流量节约经费、作为初级网络防火墙隔断非法访问、阻止一般黑客入侵本地网。并提供HTTP、SOCKS4/5、TELNET、FTP、DNS及邮件和新闻代理。通过软硬件协同可实现:

1、设置用户验证和记帐:按用户分别记帐,未登记的用户无权通过代理服务器访问Internet网。统计用户的访问时间、地址、信息流量等。

2、用户管理:设置用户的不同访问权限实现分级管理,过滤外界或内部的Internet地址。管理好员工上班时间玩上网游戏、QQ聊天等影响工效且令人头痛的问题。通过设置代理服务器的一些参数,即能有效实现。针对用户水平开放WWW、FTP、Telnet、E-mail中不同使用权限,还可以过滤网上不良站点,使青少年只能访问固定IP段或域(Domain)范围的信息,使学生远离网上色情暴力等不良信息污染。

3、增加缓冲器(Cache),减少流量提高访问速度:代理服务器不仅能解决共享上网,还可以创建经常访问网址的缓冲区(能高达几个GB或更大),外界新信息通过的同时保存在缓冲区,有用户再访问相同信息时,直接由缓冲区取出传给用户,据统计大多数信息(70%以上)是常用的可直接读取的,只有少量需要从外界取得。可以数十倍的提高网速和热门站点的效率,减少本节点的流量,极大的降低成本。

4、连接Internet与Intranet(内部网),担任防火墙 (FireWall) :内部网用户通过代理服务器访问因特网,都映射为一个IP地址,外界不能直接访问到内部网电脑,有选择地将允许的访问传输给内部网。在网络间实施访问控制、过滤非法信息流、允许合法信息流通,一定程度上实现防火墙的功能。

5、共享上网,节省IP开销:所有客户机都申请1个地址连入Internet必将造成IP地址的耗尽,使用代理服务器局域网内所有用户对外只占一个IP,降低了租用过多IP地址的网络维护成本。若干台计算机连成一个局域网后通过代理服务器共用IP地址连接Internet,最大限度的节约IP地址、节省单位的上网费用、节点占用费、折旧费等。多台计算机通过一根线连接Internet,代理服务器是很合适的解决方案。

二、局域网代理服务器的实现原理:

代理服务器(Proxy Server):指自身不能执行某种操作的计算机(称为客户机),通过一台服务器来执行该操作,该服务器即为代理服务器。工作机制像生活中的代理商,假设有机器A(client),希望获取B(Internet)的数据,代理服务器为C(Proxy Server),具体运作过程是:A最终要获得B的数据,它首先与C建立连接,C接收到A的数据请求后,与B建立连接并下载A需要的B机的数据到本地,然后再传送给A,完成代理。

实际代理服务器的功能比以上简单描述要复杂得多。目前绝大部分Internet应用都可以通过代理实现。在局域网内连接到外界的服务器上安装配置软件即可实现代理。目前代理服务器软件功能十分强大、成熟,供选择的主要有:WinGate、CCProxy、WinRoute、SyGate等。可以提供TCP/IP、IPX、NETBEUI通信协议、WWW浏览、FTP文件传输、Telnet远程登录、电子邮件收发、TCP/UDP端口映射、SOCKS 代理等服务。

三、 局域网代理服务器的示例:

该方案在具备联网条件的计算机上安装设置服务器软件。以上软件各有特点,本方案从重视信息安全角度出发使用国产软件CCProxy (北京遥志wwwyoungzsoftcom),功能强大全面全中文界面简单易用,安装设置简单。充当服务器的计算机配置要求不高,操作系统可选Windows 98/Me/NT/2000/XP,如果选Win95,需要先安装winsock2;服务器通过Modem、ADSL、ISDN、DDN或专线等可以直接连接到Internet;服务器与客户机都安装TCP/IP协议且连通良好。

硬件设备:一台作为服务器的计算机(配置高些可以提高速度)和多台客户机,所有电脑采用星形拓扑结构通过网线连接到一个集线器(HUB)上,构成一个局域网。下面介绍软件安装和设置。

1、下载软件后,在B机上运行CCPoxy即可自行安装,在弹出的窗口中单击账号,选择添加/编辑,在用户名栏输入A机名称,在用户IP中输入自定的地址,这里可以参照A机的IP来考虑,如果不知道A机的IP,可在A机中运行Winipcfg命令查看,以笔者的IP例,ISP 提供的IP为10111025,那么A机的IP可以指定为10111029,记住此地址,确定后进入设置选项。

2、软件默认的HTTP端口号为808,实践中发现造成A机经常掉线的缺陷,改为711就可以避免。屏蔽其他端口,只留 8080、21、1080等必要端口。

3、最后一步,打开A机,用右键点击网上邻居àTCP/IPà属性àDNS配置à启用DNSà主机名(填B机名)à在DNS服务器搜索顺序中输入B机同样的值,按下添加按钮,然后在IP地址一栏中输入自定义的IP地址(10111029),子网掩码中输入2552552550。

4、现在打开AB两机,运行B机内CCProxy(会自动最小化,不影响上网),在客户机A上机运行IE,在工具菜单中选择à工具àINTERNET选项à连接à局域网设置,点击"使用代理服务器"前面的方框后,输入B机的IP,端口号填711,确定就可以了。

5、以上步骤完成后,A机就可以通过B连接到Internet,软件的EMAIL、FTP参数均可类推设置,局域网中剩余计算机的IP地址累加其他参数一样。至此,所有安装设置工作完成。

6、技巧:双击软件界面的绿色网格实时观测监控代理用户的流量;在IP帐号管理中实现访问权限限制和分层功能;支持客户端使用Outlook收发邮件;支持客户端拨号的自动启动和自动智能断线;通过日志统计上网时间和访问内容。还可以绑定IP/MAC(网卡物理号码)地址,IP与MAC不对应则拒绝其访问网络,防止用户乱改IP。修改ccproxyini文件可实现一些非常好用的高级功能。如:将Socks5UDP=1改为SOCKS5UDP=0,则所有客户机都不能用QQ聊天。为屏蔽非法用户设置http、socks的密码验证,在ccproxyini文件的[system]部分添加NeedAuth=1,文件最后添加一个[Auth]部分:

[Auth]/Count=1/UserName1=用户设定/Password1=用户设定/

其中Count表示有几个帐号需要设置。UserName1表示第一个帐号的用户名,Password1表示第一个帐号的密码。在软件的账号->允许部分->网站过滤中->站点过滤中加入ourgamecom;ourgamecom;6113663;20299160;202106182;2111449;202108255;可以屏蔽客户机访问联网游戏。在内容过滤中加入选定的文字过滤不良网站,可以减少对学生的负面影响。

四、 讨论:

1、方案的优点:该方案最经济,硬件安装简单,软件占用空间和资源很少,界面友好、设置简单、功能齐全,能完成所有TCP/IP网络连接。Log日记还能监察客户机访问过的站点。针对不同用户安排上网时间和带宽流量控制。有效过滤网站,有较高的安全性,非常适合政府部门、公司和学校。

2、方案的缺点:需占用一台电脑作服务器(Server);软件需要注册且选项设置需要时间熟悉;服务器(Server)软硬件的性能和工作状态可能影响速度。

实践证明,以ccproxy软件为基础的该应用方案,投入资金低、容易实施且稳定可靠。对于资金有限、硬件设备相对较弱又对因特网有一定需求的中、小型单位是一个理想的选择。

计算机局域网中的双绞线可分为非屏蔽双绞线)UTP*和屏蔽双绞线)STP*两大类。DNS是计算机域名系统或域名解析服务器(Domain Name System 或Domain Name Service) 的缩写,它是由解析器以及域名服务器组成的。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 什么是代理服务器,为什么叫做“代理“?好处是什么,如何在C#程序中链接到代理服务器?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情