uhub, произносится «ю хаб», это открытый сервер хаба Direct Connect, созданный Яном Видаром Креем. Разработка ведётся с 2007 года, а проект выпускается по GNU General Public License версии 3. Он написан на C и специально предназначен для сообществ, использующих совместимые с ADC клиенты, такие как DC++, AirDC++ и другие современные приложения Direct Connect.
Хаб является местом встречи сообщества Direct Connect. uhub ведёт учёт подключённых пользователей, передаёт общий и личный чат, распределяет поисковые запросы и результаты, применяет правила доступа и помогает клиентам устанавливать прямые соединения друг с другом. Сами файлы через uhub не проходят. Когда два пользователя решают обменяться файлом, передача обычно идёт непосредственно между их клиентами. Благодаря этому сравнительно небольшой сервер координирует гораздо больше обмена файлами, чем смог бы сам ретранслировать.
Это важно и для браузерных либо серверных клиентов. Подключение веб-клиента к uhub может дать чат, список пользователей и поиск, но не превращает автоматически одноранговую передачу в обычную веб-загрузку. Веб-клиент или поддерживающая его служба всё равно должны реализовать передачу между клиентами. uhub координирует пользователей и их запросы на соединение; это не служба хранения файлов, не прокси загрузки и не веб-сервер.
uhub построен вокруг небольшого событийного ядра с низким потреблением памяти. Частный хаб может работать на скромном оборудовании, включая небольшие системы Linux и встраиваемые устройства, а крупные установки способны обслуживать тысячи подключённых пользователей на более мощных серверах. Он поддерживает IPv4 и IPv6, шифрованные соединения, зарегистрированные учётные записи, права операторов, баны, защиту от flood, дополнительные плагины, мониторинг и несколько способов расширить хаб по мере роста сообщества.
Проект развивался поэтапно. Версия 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 программой альфа-качества, а не платформой для критически важных сервисов. Это не означает, что программа служит только демонстрацией, но перед использованием для важного публичного сообщества оператор должен проверить выбранный релиз, плагины, клиентов, резервное копирование и процедуру обновления.
Работа ADC И ADCS
uhub обслуживает сообщества, использующие ADC, современный протокол Direct Connect. Пользователь подключается совместимым с ADC клиентом и вводит адрес, начинающийся с adc:// или adcs://. ADC даёт обычное соединение с хабом, а ADCS добавляет TLS-шифрование между клиентом и хабом.
Шифрованное соединение ADCS защищает аутентификацию учётной записи, чат, поиск, сведения о пользователях и другой трафик с хабом. Оно не шифрует файл посредством маршрутизации через uhub. Прямые передачи файлов остаются отдельными соединениями между клиентами и зависят от их возможностей и настроек.
Оператор может разрешить шифрованные и незашифрованные соединения либо потребовать ADCS. Текущие версии uhub поддерживают TLS 1.2 и TLS 1.3 через OpenSSL или LibreSSL. Опубликованный адрес хаба, имя хоста, сертификат и порт прослушивания должны относиться к одной службе. Сервер может принять базовое сетевое соединение и затем отклонить TLS-рукопожатие, вход, аутентификацию учётной записи или согласование ADC.
uhub поддерживает IPv4 и IPv6 и может предпочитать IPv6 при его наличии. Это позволяет одному сообществу обслуживать оба типа сети, хотя прямые передачи всё равно зависят от возможности двух клиентов создать совместимый маршрут. uhub поддерживает координацию соединений, связанную с NAT, но не может отменить действие пользовательского firewall, маршрутизатора, ограничений провайдера или неверной настройки клиента.
Публичный оператор может указать имя и описание хаба, владельца, сайт, имя сети и опубликованный адрес. uhub также может объявить себя совместимой службе регистрации hublist. Частные хабы могут отключить регистрацию и принимать только приглашённых или зарегистрированных пользователей.
Эксплуатация И Расширения
- Небольшие И Крупные Сообщества: Установка по умолчанию работает как один событийный процесс и подходит для многих частных и публичных хабов. Оператор выбирает максимум пользователей, гостевой доступ, обязательность регистрации, лимиты с одного адреса и правила минимальной шары, upload-слотов, поисковых терминов или числа других хабов пользователя.
- Учётные Записи И Модерация: Плагины аутентификации могут создать зарегистрированные учётные записи для участников, операторов и администраторов. В зависимости от включённых плагинов пользователь регистрируется оператором или самостоятельно. Модерация включает ограничения по нику, CID и IP, временные и постоянные баны, причины банов, ограничения чата, flood-контроль, сведения о недавних пользователях, управление темой и команды оператора. В 0.8.0 зарегистрированные учётные записи перенесены из старого файла контроля доступа в плагины аутентификации, поэтому существующие установки должны мигрировать эти записи при обновлении.
- Чат И Функции Сообщества: uhub может хранить настраиваемый объём истории основного чата, показывать приветствия, публиковать правила хаба, предоставлять команды совместимым клиентам и ограничивать чат или личные сообщения по уровню учётной записи. В 0.8.0 появилась расширение форматированного текста RTF0. Поддерживающие его клиенты показывают форматированный чат, сообщения и удалённые изображения; старые клиенты получают обычный текст. Оператор может отключить загрузку изображений по внешним URL.
- Использование Нескольких Ядер CPU: По умолчанию uhub работает в однопроцессном режиме. В большой установке можно задать
workersбольше единицы, чтобы несколько процессов workers делили один порт и выглядели для пользователей как один хаб.workers=0выбирает worker для каждого доступного ядра CPU. Это полезно, когда шифрование или множество соединений ограничивают один процесс; пользователям не требуются отдельные адреса worker. - Связывание Хабов Между Машинами: Федерация соединяет отдельные установки uhub и делает их одной большей общностью. Пользователи разных узлов могут иметь общий видимый список, общаться, обмениваться личными сообщениями, искать, получать результаты и создавать прямые передачи через границы узлов. Темы и действующие баны тоже могут распространяться. Федерация по-прежнему экспериментальна и рассчитана на доверенные системы; оператор должен понимать ограничения, проверять переподключение и разделение сети и защищать общие учётные данные связанных серверов.
- Плагины: Многие дополнительные функции uhub держит вне ядра и загружает через плагины. Встроенные плагины дают SQLite- или файловую аутентификацию, журналирование, историю чата, приветствия, команды тем, саморегистрацию, ответы на flood, меню команд и ограниченный чат. Нативные плагины C имеют широкий доступ к работающему хабу и должны соответствовать API установленного релиза. В 0.8.0 добавлены JavaScript-плагины QuickJS; они работают в ограниченной среде без обычного доступа к файловой системе и сети и подходят для собственных команд и событий без компиляции C.
- Мониторинг: В 0.7.0 добавлен необязательный endpoint метрик, совместимый с Prometheus. Он сообщает о подключённых пользователях, соединениях, переданном трафике хаба, числе сообщений и времени event loop. Endpoint выключен по умолчанию и требует bearer token. Используйте HTTPS, loopback или доверенную сеть управления, иначе plain HTTP может раскрыть токен.
- Восстановление Соединений: Текущие релизы периодически проверяют простаивающие соединения, чтобы быстро удалить пользователя, чья сетевая сессия исчезла без корректного отключения. Это уменьшает отказы при переподключении, когда хаб считает старую сессию активной, и улучшает восстановление после прерывания Wi‑Fi, NAT, firewall или клиента без изменения обычной обработки активных пользователей.
- Установка И Платформы: Официальный репозиторий предоставляет исходный код и пакеты релизов. Документация охватывает 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 | Шаги сборки или установки, создания конфигурации, запуска службы, подключения клиента, регистрации пользователей и включения workers. |
| Справочник Конфигурации | https://www.uhub.org/doc/config.html | Поисковый справочник listeners, идентичности хаба, лимитов, flood, TLS, мониторинга, файлов, workers и федерации. |
| Связывание Хабов И Федерация | 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 | Инструкции по сертификатам и шифрованным ADCS-соединениям с OpenSSL или LibreSSL. |
| Документация Мониторинга | https://www.uhub.org/doc/metrics.html | Необязательный Prometheus endpoint, статистика, токен аутентификации и рекомендуемый безопасный доступ. |
| Новости Проекта И История Релизов | 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, совместимость и текущие сборки разработки. |
Комментарии
Комментариев Пока Нет. Начните Обсуждение.