跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Cosmo)
  • 不使用皮肤
折叠
品牌标识
O

openapi

@openapi
关于
帖子
8
主题
8
分享
0
群组
0
粉丝
0
关注
0

帖子

最新 最佳 有争议的

  • OpenZiti 深度指南:本地安装部署详解
    O openapi

    本文详细介绍 OpenZiti 的三种本地部署方式,帮助初学者深入理解每个步骤的原理和配置细节。

    一、部署方式对比

    方式 适用场景 复杂度
    本地无 Docker 学习、开发测试 ⭐
    本地 Docker 隔离测试环境 ⭐⭐
    Docker Compose 多组件网络模拟 ⭐⭐⭐

    二、本地无 Docker 部署

    前置要求

    需要安装:tar、hostname、jq、curl

    端口要求:Controller(1280, 6262)、Edge Router(3022, 10080)

    一键安装

    source /dev/stdin <<< "$(wget -qO- https://get.openziti.io/ziti-cli-functions.sh)"; expressInstall
    

    安装脚本会:下载二进制、创建PKI、生成配置、设置环境变量。

    启动组件

    startController   # 启动控制器
    startRouter       # 启动边缘路由器
    zitiLogin         # 登录验证
    

    验证

    ziti edge list edge-routers
    # 查看 isOnline: true
    

    三、本地 Docker 部署

    创建资源

    docker volume create myPersistentZitiFiles
    docker network create myFirstZitiNetwork
    

    启动控制器

    docker run --name ziti-controller \
      -e ZITI_CTRL_ADVERTISED_ADDRESS=ziti-edge-controller \
      --network myFirstZitiNetwork \
      -p 1280:1280 \
      -v myPersistentZitiFiles:/persistent \
      openziti/quickstart /var/openziti/scripts/run-controller.sh
    

    四、Docker Compose 部署

    curl -so docker-compose.yaml https://get.openziti.io/dock/docker-compose.yml
    curl -so .env https://get.openziti.io/dock/.env
    docker compose up
    

    五、认证机制

    • 主要认证:x509证书、JWT、用户名/密码
    • 次要认证:TOTP、JWT
    • 推荐生产环境使用证书认证

    详细原文参考官方文档:
    https://netfoundry.io/docs/openziti/learn/quickstarts/

    OpenZiti 中文社区: https://www.openziti.cn

    技术实践

  • OpenZiti 故障排除与性能优化
    O openapi

    本文将介绍 OpenZiti 常见问题的排查方法、性能优化建议,以及规模化部署的最佳实践。

    一、常见错误码与解决方案

    连接类错误

    错误码 描述 解决方案
    CONNECTION_REFUSED 连接被拒绝 检查服务是否启动
    CERTIFICATE_VERIFY_FAILED 证书验证失败 检查证书是否过期
    IDENTITY_NOT_FOUND 身份不存在 重新注册身份
    SERVICE_NOT_AVAILABLE 服务不可用 检查服务策略

    认证类错误

    • AUTH_FAILED: 认证失败,检查用户名密码或证书
    • ENROLLMENT_EXPIRED: 注册令牌过期,重新生成 JWT
    • IDENTITY_DISABLED: 身份已禁用,联系管理员

    二、故障排查流程

    1. 检查服务状态: ziti edge list services
    2. 检查身份状态: ziti edge list identities
    3. 检查策略配置: ziti edge policy-advisor identities
    4. 检查连接日志: docker logs ziti-controller
    5. 启用调试模式: ziti-edge-tunnel run --verbose

    三、网络延迟优化

    路由优化

    将边缘路由器部署在靠近用户的位置,减少网络跳数。

    连接池配置

    edge:
      api:
        idleTimeout: 30000
        readTimeout: 30000
    

    四、规模化部署建议

    规模 身份数 配置建议
    小型 < 100 单节点,4C8G
    中型 100-1000 主备模式,8C16G
    大型 > 1000 集群模式,16C32G

    五、常见问题 FAQ

    Q: 客户端无法连接服务?

    • 检查身份权限和服务状态

    Q: 证书过期怎么办?

    • 重新生成证书

    Q: 性能下降怎么办?

    • 检查系统资源,重启服务

    系列结语

    恭喜你完成了 OpenZiti 入门到精通系列教程!


    相关资源

    • 官方文档:https://openziti.io/docs/
    • GitHub 仓库:https://github.com/openziti/ziti
    • OpenZiti 中文社区:https://www.openziti.cn
    技术实践

  • OpenZiti 进阶实战:跨云与混合网络架构
    O openapi

    本文将探讨如何在多云和混合网络环境中部署 OpenZiti,实现跨云安全互联。

    一、多云部署概述

    为什么需要多云部署?

    传统网络架构的问题:

    • VPN 配置复杂,维护成本高
    • 需要开放入站端口
    • 横向移动风险
    • 云厂商锁定

    OpenZiti 的优势:

    • 零信任访问控制
    • 暗模式(无入站端口)
    • 云厂商无关
    • 动态拓扑

    二、控制器部署

    使用 Docker 部署控制器

    # docker-compose.yml
    version: '3.8'
    services:
      ziti-controller:
        image: openziti/quickstart:latest
        environment:
          - ZITI_CTRL_NAME=ProductionController
          - ZITI_CTRL_EDGE_ADVERTISED_ADDRESS=controller.example.com
        ports:
          - "1280:1280"
          - "6262:6262"
    

    高可用控制器

    使用外部数据库实现高可用:

    • PostgreSQL 后端
    • 多控制器实例
    • 负载均衡

    三、跨云路由器部署

    AWS 部署

    # 创建路由器身份
    ziti edge create edge-router "aws-router-1" \
      --role-attributes "aws-routers,us-east-1" \
      --jwt-output-file aws-router-1.jwt
    

    阿里云部署

    ziti edge create edge-router "aliyun-router-1" \
      --role-attributes "aliyun-routers,cn-hangzhou" \
      --jwt-output-file aliyun-router-1.jwt
    

    本地数据中心部署(暗模式)

    本地数据中心通常无法从公网访问,使用暗模式:只需要出站连接,无需开放入站端口。

    四、网络拓扑设计

    Hub-Spoke 模式

    适合中心化管理的场景:控制器作为 Hub,各区域路由器作为 Spoke。

    Full Mesh 模式

    适合高吞吐、低延迟场景:所有路由器之间互联。

    五、高可用方案

    • 控制器高可用:多实例 + 外部数据库
    • 路由器高可用:同一区域部署多个路由器

    总结

    本文介绍了:跨云部署架构、控制器和路由器部署、网络拓扑设计、高可用方案。


    相关资源

    • 官方文档:https://openziti.io/docs/
    • GitHub 仓库:https://github.com/openziti/ziti
    • OpenZiti 中文社区:https://www.openziti.cn
    技术实践

  • OpenZiti 客户端使用:从 Web 访问到应用集成
    O openapi

    本文将介绍如何使用 OpenZiti 客户端访问服务,包括桌面客户端、命令行工具和 SDK 集成三种方式。

    一、客户端类型

    客户端类型 适用场景 特点
    Ziti Desktop Edge 桌面用户 图形界面,自动隧道
    ziti-edge-tunnel 命令行 轻量级,适合服务器
    SDK 集成 开发者 应用内嵌,完全控制

    二、Ziti Desktop Edge 安装

    下载安装

    • Windows/macOS/Linux 均支持
    • 从 GitHub 下载最新版本
    • macOS 可用 Homebrew: brew install --cask ziti-edge-tunnel

    添加身份

    1. 启动 Ziti Desktop Edge 应用
    2. 点击「Add Identity」
    3. 选择 JWT 文件
    4. 完成注册

    三、命令行客户端(ziti-edge-tunnel)

    安装

    # Linux
    curl -LO https://github.com/openziti/ziti-tunnel-sdk-c/releases/download/v0.22.5/ziti-edge-tunnel-Linux_x86_64.zip
    unzip ziti-edge-tunnel-Linux_x86_64.zip
    sudo mv ziti-edge-tunnel /usr/local/bin/
    

    注册身份

    ziti-edge-tunnel enroll --jwt alice.jwt --identity alice.json
    

    启动隧道

    # 前台运行
    ziti-edge-tunnel run --identity alice.json
    
    # 后台运行
    ziti-edge-tunnel run --identity alice.json --daemon
    

    四、通过隧道访问服务

    # HTTP 服务访问
    curl http://web-api.ziti/api/users
    
    # SSH 访问
    ssh user@ssh-server.ziti
    
    # 数据库连接
    mysql -h db-service.ziti -P 3306 -u root -p
    

    五、SDK 集成示例(Go)

    import "github.com/openziti/sdk-golang/ziti"
    
    func main() {
        cfg, _ := ziti.NewConfigFromFile("alice.json")
        ctx, _ := ziti.NewContext(cfg)
        conn, _ := ctx.Dial("web-api")
        // 使用连接...
    }
    

    六、常见问题排查

    • 无法连接服务:检查身份权限和服务状态
    • 认证失败:检查 JWT 是否过期
    • DNS 解析问题:手动添加 hosts 或启用 DNS 功能

    相关资源

    • 官方文档:https://openziti.io/docs/
    • GitHub 仓库:https://github.com/openziti/ziti
    • OpenZiti 中文社区:https://www.openziti.cn
    技术实践

  • OpenZiti 基础操作:身份、服务与策略配置
    O openapi

    本文将深入讲解 OpenZiti 的核心操作:如何创建身份、定义服务、配置策略,实现精细化的零信任访问控制。

    一、身份管理(Identity)

    身份(Identity) 是 OpenZiti 中访问网络的主体:每个用户、设备或服务都需要一个身份,身份由证书标识,身份可以关联角色属性。

    创建身份

    # 登录控制器
    ziti edge login --username admin --password admin --url https://127.0.0.1:1280
    
    # 创建用户身份
    ziti edge create identity user "alice" \
      --role-attributes "developers,backend-team" \
      --jwt-output-file alice.jwt
    
    # 查看所有身份
    ziti edge list identities
    

    管理身份

    # 查看身份详情
    ziti edge show identity alice
    
    # 更新身份属性
    ziti edge update identity alice --role-attributes "developers,senior"
    
    # 禁用身份
    ziti edge update identity alice --disabled true
    

    二、服务定义(Service)

    服务(Service) 是可通过 OpenZiti 网络访问的资源:可以是 HTTP API、SSH、数据库等。

    创建服务

    # 创建服务
    ziti edge create service "web-api" \
      --role-attributes "api-services" \
      --configs "web-api-host.v1"
    
    # 配置服务地址
    ziti edge create config "web-api-host.v1" "host.v1" \
      '{"address": "192.168.1.100", "port": 8080, "protocol": "tcp"}'
    

    三、策略配置(Policy)

    服务策略

    # 允许 developers 角色访问 api-services 服务
    ziti edge create service-policy "dev-access-api" \
      --service-roles "@api-services" \
      --identity-roles "#developers" \
      --type Bind
    
    # 允许用户访问服务
    ziti edge create service-policy "users-dial-api" \
      --service-roles "@api-services" \
      --identity-roles "#users" \
      --type Dial
    

    边缘路由策略

    # 允许所有用户通过公共路由器接入
    ziti edge create edge-router-policy "all-users-public" \
      --edge-router-roles "@public-routers" \
      --identity-roles "#all"
    

    四、常用命令速查

    # 身份管理
    ziti edge list identities
    ziti edge create identity user <name>
    ziti edge update identity <name>
    ziti edge delete identity <name>
    
    # 服务管理
    ziti edge list services
    ziti edge create service <name>
    ziti edge delete service <name>
    
    # 策略管理
    ziti edge list service-policies
    ziti edge create service-policy <name>
    

    总结

    本文详细介绍了:身份管理、服务定义、策略配置。


    相关资源

    • 官方文档:https://openziti.io/docs/
    • GitHub 仓库:https://github.com/openziti/ziti
    • OpenZiti 中文社区:https://www.openziti.cn
    技术实践

  • OpenZiti 安装指南:快速部署测试环境
    O openapi

    本文将手把手教你搭建 OpenZiti 测试环境。通过 Docker 快速部署,让你在 10 分钟内拥有一个可用的零信任网络。

    一、环境准备

    系统要求

    项目 最低要求 推荐配置
    操作系统 Linux / macOS / Windows Ubuntu 22.04 / macOS
    CPU 2 核 4 核
    内存 4 GB 8 GB
    磁盘 20 GB 50 GB

    必需软件

    • Docker
    • Docker Compose
    • ziti CLI 工具

    安装 ziti CLI:

    # Linux/macOS 安装脚本
    curl -fsSL https://get.openziti.io/quick/install | bash
    
    # 或使用 Homebrew (macOS)
    brew install openziti
    
    # 验证安装
    ziti --version
    

    二、快速启动

    创建本地测试网络

    # 创建工作目录
    mkdir -p ~/ziti-quickstart
    cd ~/ziti-quickstart
    
    # 下载并运行快速启动脚本
    curl -fsSL https://get.openziti.io/quick/simple/quickstart-simple.sh | bash
    

    该脚本会自动创建控制器、边缘路由器、生成 PKI 证书。

    三、使用 Docker Compose 部署

    创建 docker-compose.yml 文件,启动控制器和边缘路由器。

    四、验证安装

    检查控制器状态

    ziti edge login --username admin --password admin --url https://127.0.0.1:1280
    ziti edge list controllers
    ziti edge list edge-routers
    

    访问 Web 控制台

    打开浏览器访问:https://127.0.0.1:1280

    默认登录凭据:用户名 admin,密码 admin

    五、常见问题

    • 端口被占用:修改 docker-compose.yml 中的端口映射
    • 证书错误:检查证书文件是否存在
    • 容器启动失败:查看 docker compose logs

    相关资源

    • 官方文档:https://openziti.io/docs/
    • GitHub 仓库:https://github.com/openziti/ziti
    • OpenZiti 中文社区:https://www.openziti.cn
    技术实践

  • OpenZiti 入门:零信任网络与核心概念
    O openapi

    本文将带你了解 OpenZiti 是什么、它解决的核心问题,以及零信任网络的基本原理。作为系列开篇,我们将建立对 OpenZiti 架构的整体认知。

    一、OpenZiti 是什么?

    OpenZiti 是一个开源的零信任网络解决方案,它允许你构建安全的、应用嵌入式的可编程网络。

    核心特点

    特性 说明
    零信任架构 每次访问都需要身份验证和授权
    暗服务(Dark Services) 服务无需开放任何入站端口
    端到端加密 从客户端到服务端的全程加密
    可编程网络 通过 API 动态配置网络策略
    开源免费 Apache 2.0 许可证

    二、OpenZiti 解决的问题

    传统 VPN 的局限性

    • 一旦进入内网,可横向移动
    • 需要开放 VPN 入口端口
    • 用户切换设备不便
    • 不适合外部客户使用

    OpenZiti 的优势

    • 零信任:每次访问都需验证
    • 无需开放入站端口(暗服务)
    • 精细化权限控制
    • 支持任意设备、任意地点

    三、核心组件介绍

    控制器(Controller)

    控制器是 OpenZiti 网络的大脑,负责:管理网络配置和策略、处理身份认证和授权、协调路由器之间的通信、提供 REST API 和 Web 管理界面。

    路由器(Router)

    路由器构成网络传输层,负责在节点之间转发流量、实现智能路由选择、支持暗模式(只发起出站连接)。

    边缘路由器(Edge Router)

    边缘路由器是用户接入网络的入口点,处理客户端连接、验证客户端身份、与控制器协调获取服务信息。

    客户端 SDK

    OpenZiti 提供多种语言的 SDK:

    SDK 语言 适用场景
    ziti-sdk-c C 嵌入式设备、系统级应用
    sdk-golang Go 云原生应用
    ziti-sdk-jvm Java/Kotlin 企业级 Java 应用
    ziti-sdk-nodejs Node.js Web 应用
    ziti-sdk-csharp C# .NET 应用
    ziti-sdk-swift Swift iOS/macOS 应用

    四、零信任网络基本原理

    核心原则

    1. 永不信任,始终验证 - 每次访问请求都需要进行身份验证和授权检查
    2. 最小权限原则 - 用户/服务只能访问被明确授权的资源
    3. 假设已被入侵 - 网络设计假设攻击者可能已在内部

    身份(Identity)

    在 OpenZiti 中,每个访问者都有一个身份:身份由证书标识、证书由控制器签发、身份关联角色和权限。

    服务(Service)

    服务是可通过 OpenZiti 网络访问的资源:可以是 HTTP 服务、SSH、数据库等、服务可以配置为暗模式、通过策略控制谁能访问。

    策略(Policy)

    OpenZiti 使用策略实现精细化访问控制:服务策略定义谁可以访问什么服务、边缘路由策略定义谁可以通过哪些边缘路由器接入。

    五、总结

    本文介绍了:OpenZiti 是什么、它解决的核心问题、核心组件、零信任原理。

    下一篇将介绍安装部署测试环境。


    相关资源

    • 官方文档:https://openziti.io/docs/
    • GitHub 仓库:https://github.com/openziti/ziti
    • 社区论坛:https://openziti.discourse.group/
    • OpenZiti 中文社区:https://www.openziti.cn
    技术实践

  • 测试帖子 - OpenZiti技术社区体验
    O openapi

    大家好!

    这是一个测试帖子,用于测试OpenZiti技术社区的发帖功能。

    OpenZiti是一个优秀的零信任网络解决方案,期待与大家交流学习。

    感谢社区提供的平台!

    技术实践
  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
Powered by NodeBB Contributors
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组