Redian新闻
>
一款轻量级、高性能、功能强大的内网穿透代理服务器

一款轻量级、高性能、功能强大的内网穿透代理服务器

👉 这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入芋道快速开发平台知识星球。下面是星球提供的部分资料: 

👉这是一个或许对你有用的开源项目

国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。

功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能:

  • Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
  • 视频教程:https://doc.iocoder.cn
【国内首批】支持 JDK 21 + SpringBoot 3.2.2、JDK 8 + Spring Boot 2.7.18 双版本 

来源:github.com/ehang-io/nps


nps 是一款轻量级、高性能、功能强大的内网穿透代理服务器。

目前支持 tcp、udp 流量转发,可支持任何 tcp、udp 上层协议(访问内网网站、本地支付接口调试、ssh 访问、远程桌面,内网 dns 解析等等……),此外还支持内网 http 代理、内网 socks5 代理、p2p 等,并带有功能强大的 web 管理端。

功能

  • 协议支持全面,兼容几乎所有常用协议,例如 tcp、udp、http(s)、socks5、p2p、http 代理...
  • 全平台兼容(linux、windows、macos、群辉等),支持一键安装为系统服务
  • 控制全面,同时支持服务端和客户端控制
  • https 集成,支持将后端代理和 web 服务转成 https,同时支持多证书
  • 操作简单,只需简单的配置即可在 web ui 上完成其余操作
  • 展示信息全面,流量、系统信息、即时带宽、客户端版本等
  • 扩展功能强大,该有的都有了(缓存、压缩、加密、流量限制、带宽限制、端口复用等等)
  • 域名解析具备自定义 header、404 页面配置、host 修改、站点保护、URL 路由、泛解析等功能
  • 服务端支持多用户和用户注册功能

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

快速开始

安装

https://github.com/ehang-io/nps/releases

下载对应的系统版本即可,服务端和客户端是单独的

服务端启动

下载完服务器压缩包后,解压,然后进入解压后的文件夹

执行安装命令

对于 linux|darwin

sudo ./nps install

对于 windows,管理员身份运行 cmd,进入安装目录

nps.exe install

默认端口

  • nps 默认配置文件使用了 80,443,8080,8024 端口
  • 80 与 443 端口为域名解析模式默认端口
  • 8080 为 web 管理访问端口
  • 8024 为网桥端口,用于客户端与服务器通信

启动

对于 linux|darwin

sudo nps start

对于 windows,管理员身份运行 cmd,进入程序目录

nps.exe start

安装后 windows 配置文件位于 C:\Program Files\nps,linux 和 darwin 位于/etc/nps

如果发现没有启动成功,可以查看日志(Windows 日志文件位于当前运行目录下,linux 和 darwin 位于/var/log/nps.log)

  • 访问服务端 ip:web 服务端口(默认为 8080)
  • 使用用户名和密码登陆(默认 admin/123,正式使用一定要更改)
  • 创建客户端
客户端连接

点击 web 管理中客户端前的+号,复制启动命令

执行启动命令,linux 直接执行即可,windows 将./npc 换成 npc.exe 用 cmd 执行 如果需要注册到系统服务可查看注册到系统服务

https://ehang-io.github.io/nps/#/use?id=注册到系统服务

配置

客户端连接后,在 web 中配置对应穿透服务即可

可以查看使用示例

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

使用示例

统一准备工作(必做)
  • 开启服务端,假设公网服务器 ip 为 1.1.1.1,配置文件中bridge_port为 8024,配置文件中web_port为 8080
  • 访问 1.1.1.1:8080
  • 在客户端管理中创建一个客户端,记录下验证密钥
  • 内网客户端运行(windows 使用 cmd 运行加.exe)
./npc -server=1.1.1.1:8024 -vkey=客户端的密钥

注意:

运行服务端后,请确保能从客户端设备上正常访问配置文件中所配置的bridge_port端口,telnet,netcat 这类的来检查

域名解析

适用范围:

小程序开发、微 信公 众号开发、产品演示

注意:

域名解析模式为 http 反向代理,不是 dns 服务器,在 web 上能够轻松灵活配置

假设场景:

  • 有一个域名 proxy.com,有一台公网机器 ip 为 1.1.1.1
  • 两个内网开发站点 127.0.0.1:81127.0.0.1:82
  • 想通过(http|https://)a.proxy.com访问127.0.0.1:81,通过(http|https://)b.proxy.com访问127.0.0.1:82

使用步骤:

*.proxy.com 解析到公网服务器 1.1.1.1

点击刚才创建的客户端的域名管理,添加两条规则规则:

  • 域名:a.proxy.com,内网目标:127.0.0.1:81
  • 域名:b.proxy.com,内网目标:127.0.0.1:82

现在访问(http|https://)a.proxy.comb.proxy.com即可成功

tcp 隧道

适用范围:

ssh、远程桌面等 tcp 连接场景

假设场景:

想通过访问公网服务器 1.1.1.1 的 8001 端口,连接内网机器 10.1.50.101 的 22 端口,实现 ssh 连接

使用步骤:

  • 在刚才创建的客户端隧道管理中添加一条 tcp 隧道,填写监听的端口(8001)、内网目标 ip 和目标端口(10.1.50.101:22),保存。
  • 访问公网服务器 ip(1.1.1.1),填写的监听端口(8001),相当于访问内网 ip(10.1.50.101):目标端口(22),例如:ssh -p 8001 root@1.1.1.1
udp 隧道

适用范围:

内网 dns 解析等 udp 连接场景

假设场景:

内网有一台 dns(10.1.50.102:53),在非内网环境下想使用该 dns,公网服务器为 1.1.1.1

使用步骤:

  • 在刚才创建的客户端的隧道管理中添加一条 udp 隧道,填写监听的端口(53)、内网目标 ip 和目标端口(10.1.50.102:53),保存。
  • 修改需要使用的 dns 地址为 1.1.1.1,则相当于使用 10.1.50.102 作为 dns 服务器
socks5 代理

适用范围:

在外网环境下如同使用 vpn 一样访问内网设备或者资源

假设场景:

想将公网服务器 1.1.1.1 的 8003 端口作为 socks5 代理,达到访问内网任意设备或者资源的效果

使用步骤:

  • 在刚才创建的客户端隧道管理中添加一条 socks5 代理,填写监听的端口(8003),保存。
  • 在外网环境的本机配置 socks5 代理(例如使用 proxifier 进行全局代理),ip 为公网服务器 ip(1.1.1.1),端口为填写的监听端口(8003),即可畅享内网了

注意:

经过 socks5 代理,当收到 socks5 数据包时 socket 已经是 accept 状态。表现是扫描端口全 open,建立连接后短时间关闭。若想同内网表现一致,建议远程连接一台设备。

http 正向代理

适用范围:

在外网环境下使用 http 正向代理访问内网站点

假设场景:

想将公网服务器 1.1.1.1 的 8004 端口作为 http 代理,访问内网网站

使用步骤:

  • 在刚才创建的客户端隧道管理中添加一条 http 代理,填写监听的端口(8004),保存。
  • 在外网环境的本机配置 http 代理,ip 为公网服务器 ip(1.1.1.1),端口为填写的监听端口(8004),即可访问了

注意:

对于私密代理与 p2p,除了统一配置的客户端和服务端,还需要一个客户端作为访问端提供一个端口来访问

私密代理

适用范围:

无需占用多余的端口、安全性要求较高可以防止其他人连接的 tcp 服务,例如 ssh。

假设场景:

无需新增多的端口实现访问内网服务器 10.1.50.2 的 22 端口

使用步骤:

  • 在刚才创建的客户端中添加一条私密代理,并设置唯一密钥 secrettest 和内网目标 10.1.50.2:22
  • 在需要连接 ssh 的机器上以执行命令
./npc -server=1.1.1.1:8024 -vkey=vkey -type=tcp -password=secrettest -local_type=secret

如需指定本地端口可加参数-local_port=xx,默认为2000

注意:

password 为 web 管理上添加的唯一密钥,具体命令可查看 web 管理上的命令提示

假设 10.1.50.2 用户名为 root,现在执行ssh -p 2000 root@127.0.0.1即可访问 ssh

p2p 服务

适用范围:

大流量传输场景,流量不经过公网服务器,但是由于 p2p 穿透和 nat 类型关系较大,不保证 100%成功,支持大部分 nat 类型。nat 类型检测

假设场景:

想通过访问使用端机器(访问端,也就是本机)的 2000 端口---->访问到内网机器 10.2.50.2 的 22 端口

使用步骤:

在nps.conf中设置p2p_ip(nps 服务器 ip)和p2p_port(nps 服务器 udp 端口)

注:若 p2p_port 设置为 6000,请在防火墙开放 6000~6002(额外添加 2 个端口)udp 端口

在刚才刚才创建的客户端中添加一条 p2p 代理,并设置唯一密钥 p2pssh

在使用端机器(本机)执行命令

./npc -server=1.1.1.1:8024 -vkey=123 -password=p2pssh -target=10.2.50.2:22

如需指定本地端口可加参数-local_port=xx,默认为2000

注意:

password 为 web 管理上添加的唯一密钥,具体命令可查看 web 管理上的命令提示

假设内网机器为 10.2.50.2 的 ssh 用户名为 root,现在在本机上执行ssh -p 2000 root@127.0.0.1即可访问机器 2 的 ssh,如果是网站在浏览器访问 127.0.0.1:2000 端口即可。

开源地址

https://github.com/ehang-io/nps


欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
聊一款扩展很强的高性能商务本AI早知道|知乎发布「发现・AI 搜索」功能;百度智能云发布3款轻量级大模型基于redis实现的轻量级延迟队列异种器官移植、月球石墨烯、水凝胶骨修复材料、前额叶发育、高面容量储能、新冠N354糖基化 | NSR本周上线国家高性能医疗器械创新中心:高性能医疗器械2023年度发展报告15.5k star,功能强悍、免费、开源的数据可视化工具牛人白衫小哥ECCV 2024 | 清华提出PYRA:超轻量级ViT适应&推理高效微调模块告别沉重的ELK,这套轻量级的日志系统值得你拥有提升性能的利器!探索Redis集群的强大功能与最佳实践iPhone就能跑!微软推出轻量级模型Phi-3,性能堪比GPT-3.5 Turbo,AI的未来在手机端?一款美观、优雅、轻量级的监控系统快手开源 I2V-Adapter,即插即用、轻量级模块让静态图像秒变动态视频任泽平:新能源上半场看锂电,下半场看储能、氢能、智能驾驶这款轻量级 Java 表达式引擎,真不错!秒杀$94.99 | 九阳迷你豆浆机,双色可选功能强,小家庭最爱如何通过内网穿透实现外部网络对 SpringBoot 接口的 HTTP 监听和调试?使用Squid部署代理服务Linux —— curl 命令使用代理、以及代理种类介绍内网穿透快速入门!教你从外围打点到内网穿透(零经验上手!)心灵鸡汤,站队诚实善良!小巧又功能强大的三合一手柄,手柄+自拍杆+三脚架~!自拍不求人一款开源、强大的终端共享工具,堪称神器TypeScript 5.5正式发布:更快、更智能、更强大IEEE HPCA 2024|LiteIO:高性能、轻量级的存储池化架构性能强,成本低,运行快!最强开源大模型出现,超越ChatGPT和Llama!CVPR 2024 | 微软新作StarNet:超强轻量级Backbone基层看才能、中层看德行、高层看胸怀!点击神器的秘密长篇小说《谷雨立夏间》80 头痛的事AI早知道|字节Coze海外版支持GPT-4o;文心一言上线新功能;微软开放Phi-3 轻量级AI模型AI早知道|B 站开源轻量级 AI 语言模型;阿里通义Qwen2成最强开源大模型一款开源、优雅、强大的物联网系统案例拆解|小众女性品牌,如何用轻量级营销做好大众化沟通?中东见闻5 多哈之夜
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。