您的位置:首页 > 其它

关于在内网服务器的思考。

2015-07-08 12:48 183 查看
目标:做一个网页服务器。

花生壳内网版本:

注册一个帐号。

记住你的IP和客户端的端口。

你共享一个端口,则配置80:11125.

xiongyf--->你的IP。

服务器不会记录80:11125隐射。

发给你的客户端。

客户端再将11125解释为80。调用80端口。

假想前提:TCP通信。

缺点:所有数据通过花生壳服务器中转!

特点:服务器只要开一个监听端口为客户端服务。

对于DNS解析为你IP,是DNS服务器做的事情。

二级与名服务器解开你的IP后,还会返回给客户端吗?

应该不会,而是直接将数据重新封包,丢给服务器程序。IP+客户端口+数据(11125+数据)。

普通版:

注册一个花生壳。

给你一个帐户名。IP-》隅名。同时客户端会自动解你的IP。

说到底就是做了一个DNS服务器对射到你的IP。

对于端口。你可以将本地的服务端口绑定到公网端口。

NAT的时候,源IP会被修改,端口也会被改。就是做了个隐射。

外网访问的时候都是通过地址+端口---》与名+端口。

这个时候数据走的不是花生壳服务器通道。而是直接走自己的通道了(还是要和客户端打交道)

缺点:如果小区用的宽带,很可能不是公网IP。这个时候搭建服务器的话,地址绑定就成了问题。

除非每级都进行绑定。

可以改善:

让内网版本修正。

只做狱名解析。

对于数据的传输,还是点对点。

那如何知道自己的服务起80端口对应公网的端口呢?

显然如果接的不是一级公网,此法是不能实现的(除非你能对所有NAT的路由器控制绑定)。

那如何作呢?

如果我是花生壳的设计者。

我会将客户端用UDP实现。

这样我能实现点对点。花生壳将通信双方的IP:PORT告诉对方。双方后面就可以进行直接通信了。

当然都是要通过客户端来传送数据。但是是点对点了。后面的数据不是通过服务器中转。

总结:用UDP实现点对点。

用TCP则只能中转。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: