uhub ADC- Und ADCS-Hub-Software

uhub

uhub, ausgesprochen „you hub“, ist ein von Jan Vidar Krey geschaffener Open-Source-Direct-Connect-Hubserver. Die Entwicklung reicht bis 2007 zurück, und das Projekt steht unter der GNU General Public License version 3. Es ist in C geschrieben und gezielt für Gemeinschaften gedacht, die ADC-kompatible Clients wie DC++, AirDC++ und andere moderne Direct-Connect-Anwendungen verwenden.

Ein Hub ist der Treffpunkt einer Direct-Connect-Gemeinschaft. uhub verwaltet verbundene Nutzer, leitet öffentlichen und privaten Chat weiter, verteilt Suchen und Suchergebnisse, setzt Zugriffsregeln durch und hilft Clients, direkte Verbindungen miteinander aufzubauen. Die Dateien selbst laufen nicht über uhub. Haben zwei Nutzer einen Dateitausch beschlossen, erfolgt die Übertragung normalerweise direkt zwischen ihren Clients. Dadurch kann ein vergleichsweise kleiner Server deutlich mehr Filesharing-Aktivität koordinieren, als er selbst weiterleiten könnte.

Das gilt auch für browserbasierte oder servergehostete Clients. Ein mit uhub verbundener Webclient kann Chat, Nutzerlisten und Suche bereitstellen, verwandelt Peer-to-Peer-Übertragungen aber nicht automatisch in gewöhnliche Webdownloads. Der Webclient oder sein unterstützender Dienst muss den Client-zu-Client-Transfer weiterhin umsetzen. uhub koordiniert Nutzer und ihre Verbindungsanfragen; er ist weder Dateispeicher, Download-Proxy noch Webserver.

uhub basiert auf einem kleinen, ereignisgesteuerten Kern mit geringem Speicherverbrauch. Ein privater Hub kann auf bescheidener Hardware laufen, auch auf kleinen Linux-Systemen und eingebetteten Geräten; größere Installationen können auf leistungsfähigeren Servern Tausende verbundene Nutzer bedienen. Unterstützt werden IPv4 und IPv6, verschlüsselte Verbindungen, registrierte Konten, Operatorrechte, Sperren, Flood-Schutz, optionale Plugins, Monitoring und mehrere Wege zur Erweiterung eines wachsenden Hubs.

Das Projekt entwickelte sich in mehreren Stufen. Version 0.5.0 erschien 2014 als portabler Quelltext für Linux, macOS, BSD und Solaris. 2026 beschleunigte sich die Entwicklung erneut. Version 0.6.0 modernisierte die TLS-Anforderungen und die Plugin-Schnittstelle. Version 0.7.0 ergänzte Monitoring, Mehrprozessbetrieb und das Verbinden mehrerer uhub-Installationen zu einem logischen Hub. Version 0.7.1 verbesserte Nutzerbefehle, Authentifizierung, Verbindungsgrenzen und Sicherheitsprüfungen. Version 0.8.0 brachte abgeschottete JavaScript-Plugins, reichere Chatformatierung, erweiterte Moderation, Selbstbedienungswerkzeuge für Konten, eine schnellere Erkennung toter Verbindungen und wieder Windows-Builds.

Das offizielle Projekt beschreibt uhub weiterhin als Software in Alpha-Qualität und nicht als Plattform für geschäftskritische Dienste. Das heißt nicht, dass es nur eine Demonstration ist; Betreiber sollten aber die gewählte Version, Plugins, Clients, Sicherungen und das Upgrade-Verfahren testen, bevor sie sich für eine wichtige öffentliche Gemeinschaft darauf verlassen.

ADC- Und ADCS-Betrieb

uhub bedient Gemeinschaften, die ADC, das moderne Direct-Connect-Protokoll, verwenden. Nutzer verbinden sich mit einem ADC-kompatiblen Client und geben eine Adresse mit adc:// oder adcs:// ein. ADC stellt die normale Hubverbindung bereit, während ADCS TLS-Verschlüsselung zwischen Client und Hub ergänzt.

Eine verschlüsselte ADCS-Verbindung schützt Kontoauthentifizierung, Chat, Suchen, Nutzerinformationen und weiteren mit dem Hub ausgetauschten Verkehr. Sie verschlüsselt keine Datei, indem sie diese über uhub leitet. Direkte Dateiübertragungen bleiben getrennte Verbindungen zwischen Clients und hängen von deren Fähigkeiten und Einstellungen ab.

Betreiber können verschlüsselte und unverschlüsselte Verbindungen zulassen oder ADCS verlangen. Aktuelle uhub-Versionen unterstützen TLS 1.2 und TLS 1.3 über OpenSSL oder LibreSSL. Veröffentlichte Hubadresse, Hostname, Zertifikat und Listenport müssen denselben Dienst bezeichnen. Ein Server kann eine grundlegende Netzwerkverbindung annehmen und dennoch später den TLS-Handshake, die Anmeldung, Kontoauthentifizierung oder ADC-Aushandlung ablehnen.

uhub unterstützt IPv4 und IPv6 und kann IPv6 bevorzugen, wenn es verfügbar ist. So kann eine Gemeinschaft Nutzer beider Netztypen bedienen, obwohl direkte Transfers weiterhin davon abhängen, ob die beiden Clients eine kompatible Route herstellen können. uhub unterstützt außerdem NAT-bezogene Verbindungskoordination, kann aber weder Firewall, Router, Providerbeschränkungen noch einen falsch konfigurierten Client des Nutzers außer Kraft setzen.

Ein öffentlicher Betreiber kann Hubname, Beschreibung, Eigentümer, Website, Netzwerkname und veröffentlichte Adresse angeben. uhub kann sich auch bei einem kompatiblen Hublist-Registrierungsdienst anmelden. Private Hubs können die Registrierung deaktiviert lassen und nur eingeladene oder registrierte Nutzer zulassen.

Betrieb Und Erweiterungen

  • Kleine Und Große Gemeinschaften: Die Standardinstallation läuft als ein ereignisgesteuerter Prozess und eignet sich für viele private und öffentliche Hubs. Betreiber können die Höchstzahl der Nutzer wählen, Gäste erlauben oder ausschließen, registrierte Konten verlangen, Verbindungen von einer Adresse begrenzen und Regeln für Mindestfreigabe, Upload-Slots, Suchbegriffe oder die Zahl weiterer Hubs festlegen, mit denen ein Nutzer verbunden sein darf.
  • Konten Und Moderation: Authentifizierungs-Plugins können registrierte Konten für Mitglieder, Operatoren und Administratoren bereitstellen. Je nach aktivierten Plugins werden Nutzer durch einen Operator registriert oder dürfen sich selbst registrieren. Zu den Moderationsfunktionen gehören Einschränkungen nach Nickname, CID und IP, zeitweilige oder dauerhafte Sperren, Sperrgründe, Chatbeschränkungen, Flood-Kontrollen, Informationen zu jüngsten Nutzern, Themenverwaltung und Operatorbefehle. Version 0.8.0 verschob registrierte Konten aus der alten Zugriffskontrolldatei in Authentifizierungs-Plugins; bestehende Installationen müssen diese Datensätze beim Upgrade migrieren.
  • Chat- Und Gemeinschaftsfunktionen: uhub kann eine konfigurierbare Menge des jüngsten Hauptchatverlaufs behalten, Willkommensnachrichten zeigen, Hubregeln veröffentlichen, Befehle in kompatiblen Clients bereitstellen und Chat oder private Nachrichten nach Kontostufe beschränken. Version 0.8.0 ergänzte die RTF0-Rich-Text-Erweiterung. Unterstützende Clients zeigen formatierten Chat, Nachrichten und entfernte Bilder; ältere Clients erhalten weiterhin Klartext. Betreiber können die Funktion deaktivieren, wenn Clients keine Bilder von externen URLs laden sollen.
  • Mehr Als Einen CPU-Kern Nutzen: uhub läuft standardmäßig im Einprozessmodus. Eine größere Installation kann workers auf einen Wert größer als eins setzen, damit mehrere Worker-Prozesse denselben Listenport teilen und für Nutzer wie ein Hub erscheinen. Mit workers=0 wird für jeden verfügbaren CPU-Kern ein Worker gewählt. Das hilft, wenn Verschlüsselung oder viele Verbindungen einen einzelnen Prozess begrenzen. Nutzer brauchen keine getrennten Adressen für einzelne Worker.
  • Hubs Zwischen Maschinen Verbinden: Föderation verbindet getrennte uhub-Installationen und lässt sie wie eine größere Gemeinschaft erscheinen. Nutzer an unterschiedlichen Knoten können eine sichtbare Nutzerliste teilen, miteinander chatten, private Nachrichten austauschen, suchen, Suchergebnisse erhalten und direkte Transfers über Knotengrenzen herstellen. Auch Themen und laufende Sperren können weitergegeben werden. Föderation ist weiterhin als experimentell dokumentiert und für vertrauenswürdige Systeme bestimmt. Betreiber sollten ihre Grenzen verstehen, Wiederverbindung und Netzwerkaufteilung testen und die gemeinsamen Anmeldedaten der verbundenen Server schützen.
  • Plugins: uhub hält viele optionale Funktionen außerhalb des Kerns und lädt sie über Plugins. Mitgelieferte Plugins bieten SQLite- oder dateibasierte Authentifizierung, Protokollierung, Chatverlauf, Willkommensnachrichten, Themenbefehle, Selbstregistrierung, Flood-Antworten, Befehlsmenüs und eingeschränkten Chat. Native C-Plugins haben weitreichenden Zugriff auf den laufenden Hub und müssen zur Plugin-API der installierten Version passen. Version 0.8.0 ergänzte außerdem JavaScript-Plugins über QuickJS. JavaScript-Erweiterungen laufen ohne gewöhnlichen Dateisystem- oder Netzwerkzugriff in einer eingeschränkten Umgebung und eignen sich daher für viele eigene Befehle und ereignisbasierte Funktionen ohne Kompilieren von C-Code.
  • Monitoring: Version 0.7.0 ergänzte einen optionalen Prometheus-kompatiblen Metrik-Endpunkt. Er kann verbundene Nutzer, Verbindungen, übertragenen Hubverkehr, Nachrichtenanzahlen und Event-Loop-Zeiten melden. Der Endpunkt ist standardmäßig deaktiviert und verlangt ein Bearer-Token. Betreiber sollten ihn über HTTPS, Loopback oder ein vertrauenswürdiges Verwaltungsnetz erreichen, weil das Senden des Tokens über Klartext-HTTP es offenlegen kann.
  • Verbindungserholung: Aktuelle Releases prüfen regelmäßig inaktive Verbindungen, damit Nutzer entfernt werden können, deren Netzsitzung ohne saubere Trennung verschwunden ist. Das verringert Fälle, in denen ein sich neu verbindender Client abgewiesen wird, weil der Hub seine alte Sitzung noch für aktiv hält. Die Funktion verbessert die Erholung nach unterbrochenem WLAN, NAT-, Firewall- und Clientverbindungen, ohne die Behandlung normal aktiver Nutzer zu ändern.
  • Installation Und Plattformen: Das offizielle Repository bietet Quellcode und Release-Pakete. Die aktuelle Projektdokumentation umfasst Linux, macOS, BSD und Windows sowie Pakete für gängige x86-64- und ARM64-Systeme. Debian- und Ubuntu-Nutzer können außerdem das vom Projekt verlinkte, gemeinschaftlich gepflegte Paketarchiv verwenden. Betreiber, die aus dem Quellcode bauen, benötigen einen aktuellen C-Compiler, CMake, SQLite-Entwicklungsdateien und eine unterstützte OpenSSL- oder LibreSSL-Version.
  • Konfiguration Und Sicherungen: Die wichtigsten Einstellungen liegen in uhub.conf, während Kontodaten, Zugriffsregeln, Plugins, Zertifikate und zugehörige Dateien getrennt gespeichert sein können. Eine vollständige Sicherung sollte all dies sowie die installierte Version, die Dienstdefinition und Plugin-Versionen enthalten. Testen Sie vor dem Upgrade die neue Version auf einem anderen Port oder System und bestätigen Sie Anmeldung, Konten, Moderation, Chat, Suchen, Plugins, TLS, Monitoring, Neustartverhalten und Clientkompatibilität.

Offizielle uhub-Ressourcen

Die offizielle uhub-Website, Dokumentation, das Nachrichtenarchiv, Repository, Releases und der Issue-Tracker liefern die zuverlässigsten Informationen zum Projekt. Verwenden Sie eine Dokumentation, die zur installierten Version passt, denn Konfiguration, Authentifizierung, Plugins, Moderation und Skalierungsverhalten änderten sich in den Release-Linien 0.6, 0.7 und 0.8 wesentlich.

Das GitHub-Repository enthält Quellcode, Beispielkonfiguration, Plugin-Beispiele, Bauanleitungen, Tests und die vollständige Änderungshistorie. Die Dokumentationsseite eignet sich besser für Leser, die einen Hub installieren oder betreiben wollen, ohne den Quellcode zu lesen. Reproduzierbare Softwarefehler und Funktionswünsche sollten über den Issue-Tracker mit exakter Release-Version, Betriebssystem, Konfigurationsdetails, relevanten Plugins, Protokollen und Reproduktionsschritten eingereicht werden.

BezeichnungLinkBeschreibung
uhub-Projektwebsitehttps://www.uhub.org/Offizielle Übersicht zu Zweck, Zielgruppe, unterstützten Funktionen, Downloads und aktuellen Projektlinks von uhub.
uhub-Dokumentationhttps://www.uhub.org/doc/Dokumentationsindex für Installation, Konfiguration, TLS, Plugins, Monitoring, Hub-Verknüpfung, Architektur und Entwicklung.
Erste Schrittehttps://www.uhub.org/doc/getstarted.htmlSchrittweise Einführung in Bau oder Installation von uhub, Erstellen einer Konfiguration, Starten des Dienstes, Clientverbindung, Nutzerregistrierung und Aktivieren mehrerer Worker.
Konfigurationsreferenzhttps://www.uhub.org/doc/config.htmlDurchsuchbare Referenz für jede unterstützte Einstellung, einschließlich Listener, Hubidentität, Nutzergrenzen, Flood-Kontrollen, TLS, Monitoring, Dateien, Worker und Föderation.
Hub-Verknüpfung Und Föderationhttps://www.uhub.org/doc/linking.htmlErläutert die Nutzung mehrerer CPU-Kerne durch einen Hub und die Verbindung getrennter uhub-Instanzen über Maschinen hinweg, mit aktuellen Grenzen und Sicherheitsaspekten.
Plugin-Dokumentationhttps://www.uhub.org/doc/plugins/index.htmlIndex mitgelieferter Plugins für Authentifizierung, Protokollierung, Chatverlauf, Willkommensnachrichten, Moderation, Registrierung und weiteres optionales Verhalten.
TLS-Dokumentationhttps://www.uhub.org/doc/config-ssl.htmlAnleitungen zum Einrichten von Zertifikaten und verschlüsselten ADCS-Verbindungen mit OpenSSL oder LibreSSL.
Monitoring-Dokumentationhttps://www.uhub.org/doc/metrics.htmlErläutert den optionalen Prometheus-Endpunkt, verfügbare Statistiken, das Authentifizierungstoken und empfohlenen sicheren Zugriff.
Projektnachrichten Und Release-Historiehttps://www.uhub.org/news.htmlDatierte Projektankündigungen zu den wesentlichen Änderungen in uhub 0.5, 0.6, 0.7 und 0.8.
uhub-Quellrepositoryhttps://github.com/janvidar/uhubOffizieller Quellcode, Bauanleitungen, Beispielkonfiguration, Plugins, Tests, technische Dokumentation, Lizenz und Informationen zur Mitarbeit.
uhub-Releaseshttps://github.com/janvidar/uhub/releasesVersionierte Release-Pakete und ausführliche Hinweise zu neuen Funktionen, Upgrade-Anforderungen, Sicherheitskorrekturen und Kompatibilitätsänderungen.
uhub-Issue-Trackerhttps://github.com/janvidar/uhub/issuesOffizielle Stelle zum Melden reproduzierbarer Fehler, Anfordern von Funktionen und Prüfen bekannter Projektprobleme.
uhub Dev Central adcs://adc.uhub.org:1511 uhub-Konfiguration, Plugins, ADC-Verhalten, Interoperabilität und aktuelle Entwicklungs-Builds.

Übergeordnete Seite

Kommentare

Noch Keine Kommentare. Starten Sie Die Unterhaltung.

Kommentar Hinzufügen

Kommentare hier erfordern ein Konto. Melden Sie sich an, um an der Unterhaltung teilzunehmen, oder registrieren Sie ein Konto.