一、场景描述
假设有两台已经联网的电脑A和B,想通过B去访问A的WEB服务。
二、NeutrinoProxy-内网穿透
NeutrinoProxy
是一个基于Java和Netty技术栈开发的开源项目,其核心功能就是内网穿透。内网穿透技术可以让外部网络访问到内部网络的资源。该项目提供了丰富的功能以支持多种应用场景。它不仅支持流量监控、域名映射、端口映射等基础功能,还提供了用户/License管理、端口池、SSL隧道加密等高级功能。这些功能让项目不仅仅是一个简单的内网穿透工具,更是一个多功能的代理服务器。例如,通过域名映射,开发者可以更方便地进行开发和调试;通过SSL加密,则保证了数据传输的安全性。
它具有如下功能特性:
流量监控:首页图表报表管理多维度监控,掌握实时、代理历史数据。
域名映射:http代理绑定子域名、开发或者调试第三方回调非常方便。
后台管理:端口池统一管理对外代理端口,支持多用户多客户端使用。端口或者用户等在后台禁用实时生效。
安全组:支持黑/白名单访问限制。
限速:支持对端口映射等限制上传、下载速率。
部署:包括jar部署、docker部署和原生部署。任何一种部署方式,不要求客户端与服务端一致。例如,服务端可以采用docker部署,而客户端则可以选择docker、jar或原生部署方式。
隧道加密:隧道通信支持SSL加密,数据安全得到有效保证。
多种协议:支持TCP、https、http、udp
三、 安装部署 (参考:https://gitee.com/dromara/neutrino-proxy/blob/master/docs/%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8.MD)
1)官网下载服务端zip和客户端zip
2)解压并启动服务端(可以打开UI即说明服务启动成功)
3)登录localhost:8888 以admin管理员身份查看License的Key
4)解压客户端,编辑app.yml文件,修改服务端IP和客户端唯一连接凭证Key(就是上面提到的Key)
5)保存app.yml文件后,启动客户端(cmd最后一行出现 SUCCESS则说明成功,同时也可以刷新UI界面看看在线状态是否从离线变成在线,)
6)打开localhost:8888 UI界面,对License端口映射进行配置
7)协议选http就可以 1-》协议选http 2-》服务端端口选一个可用的 3-》客户端IP写启动客户端电脑的IP 4-》客户端端口写启动客户端服务的服务端口
8)验证:
在UI界面配置好后,打开浏览器,输入localhost:端口号,出现服务端电脑的服务UI则成功。
四、举个好理解的例子
用电脑A和电脑B来说明,服务端和客户端要安装在不通的机器上。如果想通过B访问A的服务,则需要在A机器上安装客户端,在B机器上安装服务端。
第一次配置的顺序是:1)先启动B机器的服务 2)去UI界面上保存License-Key 3)启动A机器客户端 先修改app.yml文件,修改IP(即B机器的IP)和License-Key 4)启动A机器的客户端 5)去B机器的UI界面配置端口映射关系 6)配置完后在B机器浏览器上访问A机器的服务地址。
开源网址:https://gitee.com/dromara/neutrino-proxy
快速入门手册:https://gitee.com/dromara/neutrino-proxy/blob/master/docs/%E5%BF%AB%E9%80%9F%E4%BD%BF%E7%94%A8.MD
B站学习视频:https://www.bilibili.com/video/BV1EN4y1k7gq/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=f201defb3ed2c7449da8a6870d7cea67