这个项目能做什么

# EndlessNet Client EndlessNet Client 为 EndlessNet 网络提供核心基础设施,作为长期运行的代理、命令行界面(CLI)以及跨 Linux、macOS 和 Windows 的服务集成。它处理关键网络操作,包括签名服务目录消费、L3 应用路由管理、连接器发现和数据包执行。 ## 主要特性 - **跨平台支持**:在 Linux(Ubuntu/Debian)、Windows Server 和 macOS 上原生运行。 - **安全网络**:实现签名线缆合约和控制平面 HTTP 交互,以确保数据完整性和授权访问。 - **服务集成**:通过 `ipc/v2` 公共边界管理本地进程间通信(IPC),暴露严格的传输客户端,同时保持内部状态、身份和 STUN 实现私有。 - **CLI 与自动化**:提供用于用户交互的 CLI,特定命令受安全策略限制(例如,路由审批需要管理控制台)。 - **稳健测试**:包含全面的 CI 流水线,涵盖安装测试、基本服务验收、断连持久性,以及针对隔离测试服务器的真实客户端合约场景。 ## 架构与依赖 客户端依赖外部模块来提供其 API 合约: - **控制平面 API**:消费来自 `github.com/endless-net/client-api/clientapi` 的版本化 DTO 和客户端。这包括 HTTP/恢复合约(v1)、protobuf 消息和 Connect 绑定。 - **公共边界**:唯一暴露的 Go 包是 `ipc/v2`,它处理本地服务 IPC v2 合约。 ## 构建与发布 开发者可以使用标准 Go 工具构建客户端: ```bash go build ./cmd/endlessnet-client ./cmd/endlessnet-client-recovery-helper go test -short ./... ``` 发布通过 GitHub Releases 发布,适用于 Windows amd64 和 Linux amd64,以及面向 Debian/Ubuntu(amd64/arm64)的 APT 包。CI 矩阵确保在 Ubuntu 22.04/24.04、Windows 2022/2025 和 macOS 15 上的兼容性。 ## 文档 详细的操作指南和技术规范可在仓库的 `docs` 目录中找到: - [`docs/ru/client-and-network.md`](docs/ru/client-and-network.md):俄语架构与操作指南。 - [`docs/service-discovery.md`](docs/service-discovery.md):签名服务目录消费详情。 - [`docs/application-runtime.md`](docs/application-runtime.md):L3 路由和数据包执行。 - [`docs/installation-tests.md`](docs/installation-tests.md):安装与验收标准。 - [`docs/testing-control-plane.md`](docs/testing-control-plane.md):控制平面场景测试。 - [`docs/client-ipc-v2.openapi.yaml`](docs/client-ipc-v2.openapi.yaml):本地服务 IPC 合约。 - [`docs/client-ownership-recovery.md`](docs/client-ownership-recovery.md):所有权恢复流程。