大家好!
🍄 Fungi可以轻松将你的多个设备相互连接,建立安全数据通道。是一个开箱即用的开源工具。
github地址:https://github.com/enbop/fungi
Fungi将gateway作为核心设计模式。
- Gateway for services: 在设备间通过端口转发共享服务。可以像使用frp那样轻松转发ssh,远程桌面等服务,同时又不需要额外搭建服务器。
- Gateway for files: 使用内置的文件传输功能管理文件 -- 远程目录将会映射为本机WebDAV和FTP服务,使用任意WebDAV和FTP文件客户端就可以访问远程文件。你完全可以将Fungi当成一个轻量NAS框架。
开发语言
- 使用rust开发core和cli。
- 利用了rust-libp2p项目作为底层P2P通讯框架。
- 使用flutter开发GUI。
支持平台
✅Windows ✅macOS ✅Linux ✅Android
*桌面端同时提供cli tool和Gui App *支持树莓派,香橙派等arm Linux设备
原理
使用libp2p协议实现安全的连接和NAT打洞。你不必在公网暴露端口。
每个设备都将有一个独立的PeerID(公钥的hash),并且只允许来自白名单中的PeerID访问当前设备。
支持mDNS本地设备查找,设备连接时将优先使用局域网地址。
提供了一台中继服务器为社区免费使用,局域网无法访问时,将通过中继服务器尝试P2P打洞,打洞失败才选择流量中继。
libp2p协议保证数据端到端加密,任何中间人都无法看到明文数据。
Roadmap
Fungi将在接下来的版本里实现远程计算,远程命令等能力。也会尝试为每一个设备内置一个WASI虚拟环境。以安全沙箱的方式在任意设备上部署跨语言跨平台程序。
短期内也会发布转发MCP服务的能力(Gateway for MCP)。
Fungi仍然处于早期开发阶段,很期待能听到大家的建议和反馈,也欢迎任何形式的开源贡献。
如果你对这个项目感兴趣,非常期待你的一个Star⭐。
Ext Link: https://github.com/enbop/fungi
评论区
写评论多谢大家的反馈,v0.3.3新增了自建中继服务器
https://github.com/enbop/fungi/releases/tag/v0.3.3