|
发表于 2004-9-8 18:32:46
|
显示全部楼层
来自 中国–北京–北京
说白了, 就是把防火墙允许的HTTP通路当做一个隧道, 上面跑什么都行, SOCKS行, TCP行, UDP也行. 既然SOCKSONLINE可以把SOCKS转为HTTP通信, 那也可以把TCP和UDP通信也转为HTTP通信. SOCKSONLINE的端口映射就是自己建立一个UDP服务器, CS连接到这个端口时, SOL把侦听到的UDP请求都转为HTTP请求送到它自己在外网上的中间服务器, UDP请求中的目的地地址是在配置端口映射时指定好了的. 中间服务器再把请求原样发给目的地, 并把目的地机器的响应原样发回给SOCKSONLINE, SOL再原样转发给应用程序(比如CS). 这样经过两次中转, 就可以连通了. 不知道说我清楚了没有?
建立连接的过程如下:
CS --(UDP: SOL)--> SOL --(HTTP: 中间服务器, 数据内容是UDP:CS服务器) --|防火墙|--> 中间服务器 --(UDP:CS服务器)-->CS服务器
响应的过程正相反.
当然, 这只是我的猜测, 也许SOL是先把UDP转为SOCKS调用后才转成HTTP的, 不过我想这样的话效率就太低了. |
|