开发小程序必备,基于Go语言的开源内网穿透代理服务器--NPS

介绍

曾经在之前的文章中介绍过一个内网穿透工具frp,今天是另外一个,个人觉得是比较有优势的,它就是NPS,对于开发者来说真的非常有用,下面是一些介绍:

NPS一款轻量级、高性能、功能强大的内网穿透代理服务器,几乎支持所有协议,支持内网http代理、内网socks5代理、p2p等,简洁但功能强大的WEB管理界面,支持服务端、客户端同时控制,扩展功能强大,带有功能强大的web管理端,且全平台兼容,一键注册为服务,并且它是开源的!

Github

支持的协议

支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理、p2p等,以下就是Web管理界面的截图

应用场景

NPS的应用场景就太普遍了,对我来说最大的应用就是搭建内网穿透服务器,用来开发系以及各类小程序,NPS文档中也介绍了一些用途:

做公众号开发、小程序开发等----> 域名代理模式想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射,----> tcp代理模式在非内网环境下使用内网dns,或者需要通过udp访问内网机器等----> udp代理模式在外网使用HTTP代理访问内网站点----> http代理模式搭建一个内网穿透,在外网如同使用内网一样访问内网资源或者设备----> socks5代理模式

可用的场景非常多,这个需要大家折腾以及发散思维,总之真的很强悍!

NPS的特点

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

安装

详细的安装在文档中都有,这里也简单介绍一下(由于NPS是使用基于Go开发的,在跨平台方面支持很好):在Release选择自己需要的平台,也可以使用源码编译安装也可以使用docker安装:

服务端

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

执行安装命令

对于linux|darwin sudo ./nps install

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

启动

对于linux|darwin sudo nps start

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

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

停止和重启可用,stop和restart

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

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

客户端:

下载客户端安装包并解压,进入到解压目录点击web管理中客户端前的+号,复制启动命令执行启动命令,linux直接执行即可,windows将./npc换成npc.exe用cmd执行

如果使用powershell运行,请将ip括起来!

如果需要注册到系统服务可查看注册到系统服务

后续

以上都是基本的一些安装配置,具体如何使用可以直接到文档中去学习,文档非常详细

包括域名解析、tcp隧道、udp隧道、socks5代理、http正向代理、私密代理、p2p服务等等。以下是服务器端配置

客户端的配置非常丰富,也是因为其功能非常强悍,客户端分为无配置文件模式和有配置文件模式,有需要的可以了解一下,应用需要自己慢慢折腾

总结

NPS是一个同frp一样类似的内网穿透代理服务器,而且安装配置也非常简单,功能非常强大,主要还是开源免费,作为程序员,必须折腾起来!当然市面上也有很多内网穿透工具,像花生壳等,但是不如自己来的实在,希望本文能帮助到你!

PS:需自备公网IP服务器