基于Netty的开源内网穿透工具

🕵️‍软件简介

  • 中微子代理(neutrino-proxy)是一个基于netty的、开源的Java内网穿透项目。
  • 技术栈:Solon、MybatisPlus、Netty
  • 遵循MIT许可,因此您可以对它进行复制、修改、传播并用于任何个人或商业行为。

✨软件优势

  • 流量监控:首页图表、报表管理多维度流量监控,全方位掌握实时、历史代理数据。
  • 域名映射:支持绑定子域名,方便本地调试三方回调
  • 用户/License:支持多用户、多客户端使用。后台禁用实时生效。
  • 端口池:对外端口统一管理,支持用户、License独占端口。
  • 端口映射:新增、编辑、删除、禁用实时生效。
  • Docker:服务端支持Docker一键部署。
  • 隧道SSL加密:隧道通信支持SSL,保护您的数据安全。
  • HTTPS:支持HTTPS
  • 采用最为宽松的MIT协议,免去你的后顾之忧
  • 可进行复制、修改、传播并用于任何个人或商业行为

🧬名字由来

中微子,是轻子的一种,是组成自然界的最基本的粒子之一。它十分微小、不带电,可自由穿过地球,以接近光速运动,与其他物质的相互作用十分微弱,号称宇宙间的“隐身人”。中微子是宇宙中穿透能力最强的物质,只有粒子之间的间隙小于10的负19次方米时,才能够阻挡住中微子。

因此以中微子命名,寓意着中微子代理拥有中微子”安全”、”快速”、”穿透力强”的特点。

图片[1]-基于Netty的开源内网穿透工具-山海云端论坛
图片[2]-基于Netty的开源内网穿透工具-山海云端论坛
图片[3]-基于Netty的开源内网穿透工具-山海云端论坛
图片[4]-基于Netty的开源内网穿透工具-山海云端论坛

🚀️安装部署

1、安装服务端

使用jar包自行部署

  • 首先确保服务器上已安装java8运行环境
  • 打开发行版页面(opens new window),下载最新的release包:neutrino-proxy-server.jarneutrino-proxy-admin.zip
  • 在服务器上新建部署目录:/work/projects/neutrino-proxy-server
  • neutrino-proxy-server.jarneutrino-proxy-admin.zip上传至服务器部署目录。
  • 解压neutrino-proxy-admin.zip文件
  • 执行命令java -Dfile.encoding=utf-8 -jar neutrino-proxy-server.jar启动服务端完成部署,默认使用sqlite数据库。
  • 若需要指定自己的mysql数据库,同样的需要在当前目录下新建app.yml文件,文件内容同上。执行命令java -Dfile.encoding=utf-8 -jar neutrino-proxy-server.jar config=app.yml启动服务端完成部署
  • 可参照
    https://gitee.com/dromara/neutrino-proxy/blob/master/scripts/unix/server_start.sh使用shell脚本启动服务端。

2、管理后台配置

  • 服务端部署成功后,访问http://{服务端IP}:8888打开后台管理页面。
  • 使用默认的管理员帐号登录:admin/123456
  • 打开代理配置>License管理页面,可以看到系统已经自动为管理员初始化了一条License记录,复制该LicenseKey备用,后续客户端配置需要。
  • 打开代理配置>端口映射页面,可以看到系统已经自动为初始化了几条端口映射。可根据需要自行添加、修改。这里我们以9101 -> 127.0.0.1:8080映射为例

3、启动客户端

  • 首先确保本地已安装java8运行环境
  • 打开发行版页面(opens new window),下载最新的release包:neutrino-proxy-client.jar
  • 在本地neutrino-proxy-client.jar同级别目录下新建app.yml文件,并配置如下内容:

neutrino: proxy: client: # ssl证书密钥(使用jjar包内自带的证书,则此处无需修改) key-store-password: 123456 # ssl证书管理密钥(使用jjar包内自带的证书,则此处无需修改。自定义证书,则此处配置对应的路径) jks-path: classpath:/test.jks # 代理服务端IP server-ip: localhost # 代理服务端IP, 若是非ssl端口,则ssl-enable需要配置为false server-port: 9002 # 是否启用ssl ssl-enable: true # licenseKey,客户端凭证。此处需要配置刚刚从管理后台复制的LicenseKey license-key: xxxx

  • 执行命令java -jar neutrino-proxy-client.jar config=app.yml启动客户端
  • 查看服务端License管理,刷新页面,对应的License在线状态为在线,则表明客户端已正常连接

4、代理验证

  • 本地启动被代理服务,如:redis、本地web项目、本地mysql等等
  • 先确保本地能正常访问被代理服务,如果本地都不能访问,不用想代理更不可能!!!
  • 通过服务端IP+9101(上面License配置的端口映射重的服务端端口)访问本地被代理服务

访问成功,至此首次完整的内网穿透体验完成。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容