1 Star 0 Fork 82

jay / fastnat

forked from 武松 / fastnat 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

FAST NAT 全协议内网穿透

FAST NAT是基于WeNAT的扩展版,支持HTTP、TCP、UDP、WebSocket等协议。 简单的说,就是可以给你的内网电脑分配一个公网IP和端口 例如:

123.1.1.1:8888 -> 192.168.1.123:3306

当外网服务器的8888端口收到数据包后,会转发给内网的3306端口,从而实现穿透。服务器做了个中转,和传统的P2P穿透不同。

2.0 在线DEMO

我们在此基础上研发出新版本的内网穿透客户端,全套源码可以出售,需要可以联系QQ:599194993

在线下载客户端:

https://nat.72wo.com

支持windows、linux、macOS、树莓派、命令行版本

支持协议

  • TCP

  • UDP

  • HTTP、HTTPS

    应用场景

    • 本地发布网站
    • 远程桌面
    • SSH 本地服务器
    • 访问本地mysql
    • 访问本地redis
    • 访问本地mongodb

    联系方式

    开发语言

    • 服务端、web网站:node.js
    • 客户端:nw.js + node.js

TCP协议和流程

流程图

内外网代理流程

  • 内网和外网建立协议通道,用于主动连接通知
  • 外网客户端连接服务器,并且分配一个id,保存起来
  • 通知内网客户端,并且告诉id,由内网主动发起连接
  • 内网连接代理目标
  • 内网连接服务器,并且传入id,和外网进行绑定
  • 映射内外网的socket

断线和报错处理

  • 任何一方报错,终端所有端口监听以及所有的连接
  • 由客户端再次发起连接请求,并且分配一个随机端口或者继续使用上次的外网端口

TCP接口

  • 协议类型

    协议为JSON字符串

  • 安全性

    在第一次连接服务器的时候,需要带上用户的token,服务器进行校验合法后开放2个端口提供给后续使用。 在后续的流程中,不做任何校验。虽然有安全风险,但是常见的TCP应用:Mysql、Mongodb、Redis等,都有用户机制可以保护。

  • 协议类型

    暂定三种协议

    类型
    TCP
    UDP
    HTTP
  • 和通信服务器连接

    • 基本信息响应

      直接连接通信服务器端口8888,不用发送任何数据,成功后响应如下数据

      字段 类型 说明
      id string(8) 本次会话的id
      outId string(8) 外网socket 会话id
      intPort int(5) 内网连接的端口,5位数的端口,30000-65535
      outPort int(5) 外网连接的端口
      command string 操作命令
      protocol string 协议类型
      • 举个栗子🌰
       {
         id: 'CucfFpk7',
         intPort: 61289,
         outPort: 59918,
         command: 'start_proxy',
         outId: 'GpNYO5KW' 
       }
    • 主动连接服务器

      收到基本信息响应后,拿到内网的端口建立一个TCP连接,并且带上outId, 第一个数据包为协议包,后续的数据就是正常的转发

      字段 类型 说明
      outId string(8) 外网socket 会话id
      • 举个栗子🌰
       {
         outId: 'GpNYO5KW' 
       }
MIT License Copyright (c) 2020 Jingle Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

全协议内网穿透神器,支持TCP、UDP、HTTP 展开 收起
JavaScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/tplinkhad/fastnat.git
git@gitee.com:tplinkhad/fastnat.git
tplinkhad
fastnat
fastnat
master

搜索帮助