【docker项目】当前主流的开源内网穿透工具介绍
前言
目前主流的开源内网穿透工具有 ngrok frp lanproxy goproxy nps,其中老牌的ngrok,最火的是frp,其中lanproxy是用java写的其他的都是使用go语言编写。目前内网穿透服务商基本上都是使用这几款开源项目封装的。
项目介绍
1.frp
FRP 是一种快速反向代理,允许将位于 NAT 或防火墙后面的本地服务器暴露给互联网。它目前支持 TCP 和 UDP,以及 HTTP 和 HTTPS 协议,允许通过域名将请求转发到内部服务。 FRP还提供P2P连接模式。
特点:
- 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 跨平台,但是支持的比nps少一点
- 多种插件,提供很多功能
2.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 上进行简单的配置即可完成大多数要求。
- 完整的信息展示,如流量、系统信息、实时带宽、客户端版本等。
- 强大的扩展功能,一切可用(缓存、压缩、加密、流量限制、带宽限制、端口复用等)
- 域名解析具有自定义标头、404 页面配置、主机修改、站点保护、URL 路由和泛解析等功能。
- 服务器上的多用户和用户注册支持。
3.ngrok
ngrok也是一款比较老的内网穿透项目了,ngrok 是一种简化的 API 优先入口即服务,可为您的应用添加连接性、安全性和可观测性。
ngrok-go 是一个开源和惯用的库,用于将 ngrok 网络直接嵌入到 Go 应用程序中。如果您以前使用过 ngrok,则可以将 ngrok-go 视为打包为 Go 库的 ngrok 代理。
ngrok-go 允许开发人员在一行代码中在互联网上提供 Go 应用程序,而无需设置 IP、证书、负载均衡器甚至端口等低级网络原语!使用 ngrok-go 的应用程序侦听 ngrok 的全球入口网络,但它们接收的接口与任何 Go 应用程序期望的接口相同(net。侦听器),就好像它通过调用 net 侦听本地端口一样。听()。这使得将 ngrok-go 集成到任何使用 Go 的 net 或 net/http 包的应用程序中变得毫不费力。
特点:
- 目前有官方维护,一般较为稳定
- 跨平台
- 有流量记录和重发功能
4.lanproxy goproxy
特点:
lanproxy项目地址:https://github.com/ffay/lanproxy goproxy项目地址:https://github.com/snail007/goproxy