OpenZiti:让网络服务对未授权用户完全不可见

OpenZiti 是一个开源的零信任网络平台,在 GitHub 上拿到了 4,000+ 的 Star。

正文顶部截图

OpenZiti 的核心思路:让网络服务对未授权用户完全不可见。

每一个连接,不管是来自用户、设备还是工作负载,都要经过加密身份认证、策略授权和端到端加密。没有通过认证的连接会被直接拒绝,访问权限被撤销后,已建立的连接也会立即断开。

它支持两种接入方式。已有的应用可以用轻量级隧道工具,不需要改代码。新开发的应用可以嵌入 SDK,获得更强的零信任保护。

README区域截图

能用来干什么

替换 VPN 是最常见的用途。每个服务单独授权,不存在"进了内网就能访问一切"的问题。不用再折腾客户端安装和分流隧道。

暗 API 和暗服务也是一大特点。服务不监听任何端口,端口扫描器什么都发现不了。只有通过认证的客户端才能连上,其他人连这个服务的存在都不知道。没有公开端口,也就没有攻击面。

物联网场景下,每个传感器、每台设备都有自己的加密身份。身份模型对机器和人一样有效,不需要共享密钥或 IP 白名单。

跨云连接也很方便。一套覆盖网络横跨 AWS、Azure、GCP 和本地数据中心,不需要每个云用一套专用网络工具,也不用在环境之间打隧道。

AI Agent 场景也在支持范围内。每个 Agent 都有独立的加密身份,MCP 服务器和工具端点保持不可见状态,Agent 只能访问策略允许的资源。

三种部署模式

OpenZiti 提供三种零信任部署模式,可以在同一个网络里混合使用。

网络接入模式在可信网络区域部署一个边界路由器,流量从认证客户端进入覆盖网络,然后转发到内部服务。不需要改代码,也不用在服务主机上装代理。

主机接入模式在服务所在的主机上运行隧道工具,隧道工具处理身份认证和加密,服务只需要接受本地连接。部署几分钟就能完成,同样不需要改代码。

应用接入模式是安全性最强的方案。在应用里直接嵌入 SDK,应用本身持有加密身份,在进程内完成加密。连本地端口都不暴露,信任边界收缩到应用层。

支持的 SDK

OpenZiti 提供多种语言的 SDK,包括 Go、C、Java/Kotlin、Swift、Node.js、C# 和 Python。如果不想改代码,也可以用隧道工具,支持 Linux、Windows、macOS、iOS 和 Android。

安装

通过 Docker 可以快速启动本地环境:

wget https://get.openziti.io/dock/all-in-one/compose.yml
docker compose up

这会启动一个控制器、边界路由器和管理控制台。控制台地址是 https://localhost:1280/zac/,可以在里面创建身份、定义服务和配置访问策略。

也可以直接下载 ziti 命令行工具:

ziti edge quickstart

这会启动一个本地开发网络,包括控制器、路由器和默认管理员身份,适合测试和学习。

OpenZiti 采用 Apache 2.0 开源协议,可以完全自托管运行,不依赖任何厂商。

份,适合测试和学习。

OpenZiti 采用 Apache 2.0 开源协议,可以完全自托管运行,不依赖任何厂商。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐