一个简单NAT穿透代理程序

2017-8-29 Plan C Linux

blog.kurukurumi.com原创,转载请注明出处。

E-mail:hubenchang0515@outlook.com


        下午写了个简单的NAT穿透代理程序来玩Minecraft,Minecraft服务器运行在一个没有静态公网IP的机器上,由一台有静态公网IP的服务器转发TCP数据。


        原理:

  1. 代理服务器启动,等待代理客户端连接

  2. 代理客户端启动,连接代理服务器,获得SOCKET A,用于交流

  3. 玩家连接代理服务器,获得SOCKET X,用于转发

  4. 代理服务器通过SOCKET A 通知代理客户端

  5. 代理客户端再连接代理服务器,获得SOCKET Y,用于转发

  6. 代理客户端连接Minecraft的服务器,获得SOCKET Z,用于转发

        通信过程:

    玩家 --X--> Orange Server --Y--> Orange Client --Z--> Minecraft服务器


        源码:https://github.com/hubenchang0515/Orange


发表评论:

Powered by emlog
鄂ICP备16003833号