uhub ADC 和 ADCS Hub 软件

uhub

uhub(读作“you hub”)是 Jan Vidar Krey 创建的开源 Direct Connect 集线器服务器。项目开发始于 2007 年,并以 GNU 通用公共许可证第 3 版发布。它使用 C 编写,专门面向使用 DC++、AirDC++ 和其他现代 Direct Connect 应用等兼容 ADC 客户端的社区。

集线器是 Direct Connect 社区的会合点。uhub 记录已连接用户,转发公共和私人聊天,分发搜索及搜索结果,执行访问规则,并帮助客户端彼此建立直接连接。实际文件不会经过 uhub。两名用户决定交换文件后,传输通常直接在其客户端之间进行。这个区别使相对小型的服务器能够协调远多于其自身可转发规模的文件共享活动。

这对基于浏览器或由服务器托管的客户端同样重要。将 Web 客户端连接到 uhub 可以提供聊天、用户列表和搜索功能,但不会自动把点对点传输变成普通 Web 下载。Web 客户端或其支持服务仍须实现客户端到客户端的传输过程。uhub 协调用户及其连接请求;它不是文件存储服务、下载代理或 Web 服务器。

uhub 建立在内存占用低的小型事件驱动核心之上。私有集线器可运行在普通硬件上,包括小型 Linux 系统和嵌入式设备;规模更大的部署可在性能更强的服务器上服务数千名已连接用户。它支持 IPv4 和 IPv6、加密连接、注册账户、操作员权限、封禁、防洪、可选插件、监控,以及随着社区成长扩展集线器的多种方式。

项目经历了多个发展阶段。0.5.0 版于 2014 年以可移植源代码形式发布,支持 Linux、macOS、BSD 和 Solaris。开发在 2026 年再次加速。0.6.0 版更新了项目的 TLS 要求和插件接口。0.7.0 版加入监控、多进程运行,以及将多个 uhub 安装连接为一个逻辑集线器的能力。0.7.1 版改进了用户命令、身份验证、连接限制和安全检查。0.8.0 版加入沙盒 JavaScript 插件、更丰富的聊天格式、扩展的管理功能、自助账户工具、更快的失效连接检测,并恢复了 Windows 构建。

官方项目仍将 uhub 描述为 alpha 质量的软件,而不是关键任务服务平台。这并不表示它只是演示程序,但意味着运营者在将其用于重要公共社区之前,应测试所选版本、插件、客户端、备份流程和升级过程。

ADC 和 ADCS 运行

uhub 面向使用 ADC(现代 Direct Connect 协议)的社区。用户使用兼容 ADC 的客户端,并输入以 adc://adcs:// 开头的地址。ADC 提供普通集线器连接,而 ADCS 在客户端与集线器之间加入 TLS 加密。

加密的 ADCS 连接会保护账户身份验证、聊天、搜索、用户信息和与集线器交换的其他流量。它不会通过 uhub 路由文件来加密文件。直接文件传输仍是客户端之间的独立连接,取决于这些客户端的能力和设置。

运营者可同时允许加密和未加密连接,或要求使用 ADCS。当前 uhub 版本通过 OpenSSL 或 LibreSSL 支持 TLS 1.2 和 TLS 1.3。公布的集线器地址、主机名、证书和监听端口必须指向同一服务。服务器可以接受基本网络连接,但仍可能在之后的 TLS 握手、登录、账户身份验证或 ADC 协商阶段拒绝连接。

uhub 同时支持 IPv4 和 IPv6,并可在可用时优先使用 IPv6。这使一个社区能够服务于任一网络类型的用户,不过直接传输仍取决于两个客户端能否建立兼容路由。uhub 还支持与 NAT 相关的连接协调,但它无法绕过用户的防火墙、路由器、服务商限制或配置错误的客户端。

公共运营者可提供集线器名称、描述、所有者、网站、网络名称和公布地址。uhub 也可向兼容的 hublist 注册服务通告自己。私有集线器可以关闭注册,只接受受邀或已注册用户。

运行与扩展

  • 小型与大型社区:默认安装作为一个事件驱动进程运行,适合许多私有和公共集线器。运营者可选择最大用户数,决定是否允许访客、是否要求注册账户、限制来自同一地址的连接,并为最小共享量、上传槽位、搜索词或用户可连接的其他集线器数量设置规则。
  • 账户与管理:身份验证插件可为成员、操作员和管理员提供注册账户。根据启用的插件,用户可由操作员注册或自行注册。管理功能包括昵称、CID 和 IP 限制;临时或永久封禁;封禁原因;聊天限制;防洪;最近用户信息;主题管理和操作员命令。0.8.0 版将注册账户从旧访问控制文件移入身份验证插件,因此现有安装必须在升级时迁移这些记录。
  • 聊天与社区功能:uhub 可保留可配置数量的主聊天历史、显示欢迎消息、发布集线器规则、在兼容客户端中公开命令,并按账户级别限制聊天或私信。0.8.0 版增加了对 RTF0 富文本扩展的支持。支持它的客户端可显示格式化聊天、消息和远程图像,而旧客户端仍接收纯文本。不希望客户端从外部 URL 加载图像的运营者可以关闭该功能。
  • 使用多个 CPU 核心:uhub 默认以单进程模式运行。较大的部署可将 workers 设为大于一的值,使多个工作进程共享同一监听端口,并向用户呈现为一个集线器。设置 workers=0 会为每个可用 CPU 核心选择一个工作进程。当加密或大量连接使一个进程成为限制因素时,这很有用。用户不需要为各个工作进程使用不同地址。
  • 跨机器连接集线器:联邦会连接独立的 uhub 安装,并使它们看起来像一个更大的社区。连接到不同节点的用户可以共享一个可见用户列表、互相聊天、交换私信、搜索、接收搜索结果,并跨节点建立直接传输。主题和实时封禁也可以传播。联邦仍被记录为实验性功能,仅适用于可信系统。运营者应了解其限制,测试重连和网络分裂行为,并保护链接服务器所用的共享凭据。
  • 插件:uhub 将许多可选功能置于核心之外,并通过插件加载。随附插件可提供 SQLite 或基于文件的身份验证、日志、聊天历史、欢迎消息、主题命令、自助注册、防洪响应、命令菜单和受限聊天。原生 C 插件对运行中的集线器具有广泛访问权限,必须匹配已安装版本的插件 API。0.8.0 版还通过 QuickJS 加入 JavaScript 插件。JavaScript 扩展在没有普通文件系统或网络访问权限的受限环境中运行,适合实现许多自定义命令和事件驱动功能,而无需编译 C 代码。
  • 监控:0.7.0 版增加了可选的 Prometheus 兼容指标端点。它可报告已连接用户、连接、已传输的集线器流量、消息数和事件循环计时。该端点默认关闭,并要求持有者令牌。运营者应通过 HTTPS、回环地址或可信管理网络访问它,因为通过明文 HTTP 发送令牌可能泄露令牌。
  • 连接恢复:当前版本会定期检查空闲连接,以便及时移除网络会话在没有正常断开时消失的用户。这可减少重新连接的客户端因集线器仍认为其旧会话处于活动状态而被拒绝的情况。该功能改善了中断的 Wi-Fi、NAT、防火墙和客户端连接的恢复,而不改变正常活动用户的处理方式。
  • 安装与平台:官方仓库提供源代码和发布包。当前项目文档覆盖 Linux、macOS、BSD 和 Windows,并提供常见 x86-64 和 ARM64 系统的软件包。Debian 和 Ubuntu 用户还可以使用项目链接的社区维护软件包仓库。从源代码构建的运营者需要当前的 C 编译器、CMake、SQLite 开发文件以及受支持的 OpenSSL 或 LibreSSL 版本。
  • 配置与备份:主要设置存储在 uhub.conf 中,而账户数据、访问规则、插件、证书和相关文件可能单独存储。完整备份应包括所有这些内容,以及已安装版本、服务定义和插件版本。升级前,请在另一端口或系统上测试新版本,并确认登录、账户、管理、聊天、搜索、插件、TLS、监控、重启行为和客户端兼容性。

官方 uhub 资源

官方 uhub 网站、文档、新闻归档、仓库、发布版和问题跟踪器提供有关该项目的最可靠信息。请使用与已安装版本匹配的文档,因为配置、身份验证、插件、管理和扩展行为在 0.6、0.7 和 0.8 发布线中发生了重大变化。

GitHub 仓库包含源代码、示例配置、插件示例、构建说明、测试和完整变更历史。对于希望安装或运行集线器而无需阅读源代码的读者,文档站点更合适。可复现的软件缺陷和功能请求应通过问题跟踪器提交,并附上确切版本、操作系统、配置细节、相关插件、日志以及复现问题所需步骤。

标签 链接 说明
uhub 项目网站 https://www.uhub.org/ 关于 uhub 的官方概览,包括适用对象、支持的功能、下载和当前项目链接。
uhub 文档 https://www.uhub.org/doc/ 安装、配置、TLS、插件、监控、集线器连接、架构和开发的文档索引。
入门指南 https://www.uhub.org/doc/getstarted.html 逐步介绍构建或安装 uhub、创建配置、启动服务、连接客户端、注册用户和启用多个工作进程。
配置参考 https://www.uhub.org/doc/config.html 每个受支持设置的可搜索参考,包括监听器、集线器身份、用户限制、防洪、TLS、监控、文件、工作进程和联邦。
集线器连接与联邦 https://www.uhub.org/doc/linking.html 说明一个集线器如何使用多个 CPU 核心,以及如何跨机器连接独立 uhub 实例,包括当前限制和安全注意事项。
插件文档 https://www.uhub.org/doc/plugins/index.html 随附插件索引,涵盖身份验证、日志、聊天历史、欢迎消息、管理、注册和其他可选行为。
TLS 文档 https://www.uhub.org/doc/config-ssl.html 使用 OpenSSL 或 LibreSSL 配置证书和加密 ADCS 连接的说明。
监控文档 https://www.uhub.org/doc/metrics.html 说明可选 Prometheus 端点、可用统计、身份验证令牌和建议的安全访问方式。
项目新闻与发布历史 https://www.uhub.org/news.html 带日期的项目公告,说明 uhub 0.5、0.6、0.7 和 0.8 引入的重大变化。
uhub 源代码仓库 https://github.com/janvidar/uhub 官方源代码、构建说明、示例配置、插件、测试、技术文档、许可证和贡献信息。
uhub 发布版 https://github.com/janvidar/uhub/releases 带版本的发布包和详细说明,介绍新功能、升级要求、安全修复和兼容性变化。
uhub 问题跟踪器 https://github.com/janvidar/uhub/issues 报告可复现缺陷、请求功能和查看已知项目问题的官方位置。
uhub Dev Central adcs://adc.uhub.org:1511 uhub 配置、插件、ADC 行为、互操作性和当前开发版本。

父页面

评论

还没有评论。开始讨论吧。

添加评论

此处评论需要帐户。登录后加入讨论,或注册帐户。