代理服务器的工作原理 (300分)

  • 主题发起人 主题发起人 coelang
  • 开始时间 开始时间
C

coelang

Unregistered / Unconfirmed
GUEST, unregistred user!
小生想(用DELPHI5。0)作一个代理服务器(象WINGATE,SYGATE 的基本功能)
但对代理服务器的原理了解 您如知道请给小生解释一下
{我已经看别人做了一个但好想不能再专线上使用
主要是 服务器的子网掩码 与 客户机的 不相同 好象不能通讯
如能告知解决方法不胜感激}

 
我想
一台机器可以有两个地址的啊,.一个对内,一个对外,主要是这两个地址之间的数据是怎么通讯的 啊/../
 
WINGATE,SYGATE 两种东西机制不一样. 前者是代理,后者是软路由.


关于代理协议Socks5 的RFC文档:
ftp://ftp.isi.edu/in-notes/rfc1928.txt

 
如果仅代理上网,即WWW代理,相对简单一些,只需在代理程序的机器设置两个网段的ip,
在本地浏览器设置代理为自己的代理程序提供的代理(主要是代理端口和地址),
代理服务器程序只需将浏览器的请求转发相应的web地址。不过第一个响应应该是返回
浏览器的"连接建立"信息。其余的请求全部转发web服务器,信息转发浏览器。如果支持
https也是一样,可自己调试一下,ie和ns会有很小差异。

如果用delphi6开发则可以用提供的代理控件比用Socket写块多了。
 
记得电脑报2001年有几期连栽了如何关于用delphi写代理服务的文章。
看看合订本或者到他们网站去看看
 
我写过一个,
我这里给你讲将原理,如果你要原程序,要等我考完试.

假如现在有一个网吧,一般都是有一台做服务器对不对?并且代理服务器就安装在上面。
为什么呢?

现在我假定这台服务器为SERVER,网吧里其他的电脑为client,
那么首先SERVER先bind到一个端口,等待client连接,
连接上后,就建立一个线程进行通讯。

一般情况下,如果要访问一个站点www.somedomain.com,
都是直接连接到那个站点然后发出如下的请求:
GET /INDEX.ASP HTTP/1.1
....
....
而如果用了代理服务器,
就是先连接server然后发送:
get www.somedomain.com/index.asp http/1.1
...
...

然后server 再连接www.somedomain.com
发送:
get /index.asp http/1.1
....
....
把返回的结果发送给client

不知道你明白了没有。
 
有点象木马.呵呵。
 
whaoye:
能否给我程序,谢谢
我的信箱:
coolelang@21cn.com
 
本人即将公布自主开发的FTP,MAIL,UDP,HTTP代理服务器源码
请参见
http://www.delphibbs.com/delphibbs/dispq.asp?lid=866342
 
听课
还有NAT网络地址转换怎么写?
 
后退
顶部