一个非常简洁的内网穿透实现

首先打广告,内网穿透Notr,网站部分功能仍在开发,如果您也有兴趣参与Notr的开发,请给我留言。

在完成大部分gtun 的开发之后,已经能够解决将家里网络与公司网络组建成虚拟局域网,面临一个问题,我需要在两端同时gtun客户端方能连接公司的网络,于是就想到了内网穿透,基于gtun可以非常方便的进行内网穿透。在gtun当中也有部分内网穿透的功能,但是还不够,或者说我不认为将内网穿透加入gtun让gtun变得庞大无比是一件正确之举,于是我在gtun基础之上构建一个内网穿透的项目。gtun作为底层基础设施。

当时思考了下,应该具备以下功能:

  • 首先,地位应该是一个产品而不是一个开源项目,所以给用户使用的时候一定要考虑小白的情况,所以不需要众多的配置,只需要让用户知道,我本地起了什么端口,我只要告诉你我起了什么端口,你帮我让我能够通过公网访问就OK,所以Notr的客户端非常简洁,没有任何配置,只需要指定本地端口即可

  • 其次,应该支持多种协议,HTTP,HTTPS,TCP,UDP

  • 最后,用户最终拿到的应该是域名而不是IP地址,如果是IP地址可能会经常变动,但是域名不会

于是开始了Notr的思考与实现。最初版本Notr针对HTTP和HTTPS是需要指定端口号的,朋友反馈基本上两个问题用得不舒服

  • 端口号随机的,而且每次都不一样。产生这个的原因,是自身程序是不关注应用层协议的,只关注TCP层,而且我会都会监听一个端口来服务这一代理协议

  • 其次,HTTPS安全连接的问题

于是用HTTP和HTTPS用Nginx反向代理代替,每次新生成一个Nginx配置文件,proxy_pass指定为用户的虚拟ip地址与端口即可。

这种方式实现将会特别简洁,而且会http可以使用默认的80端口,https可以使用默认的443端口,用户不需要记住端口号,仅仅需要技术域名。

Notr的运行截图如图所示:

一个非常简洁的内网穿透实现_第1张图片
image.png

对小白用户非常得友好。没有任何配置,目前缺陷是不支持windows,详细文档可以通过Notr使用手册 获取

你可能感兴趣的:(一个非常简洁的内网穿透实现)