STUN-Server

Betreibe deinen eigenen STUN-Server (RFC 8489) in Delphi. Beantworte Binding-Requests mit der kanonischen XOR-MAPPED-ADDRESS-Antwort — nützlich in privaten Netzwerken, On-Premise-Deployments und beim ICE-Bootstrap.

TsgcSTUNServer

Ein typisierter RFC-8489-STUN-Server — verarbeitet Binding-/Indication-Nachrichten, antwortet mit XOR-MAPPED-ADDRESS und erzwingt optional MESSAGE-INTEGRITY für Long-Term-Authentifizierung.

Komponentenklasse

TsgcSTUNServer

Protokoll

STUN (RFC 8489)

Plattformen

Windows, macOS, Linux, iOS, Android

Edition

Enterprise

Platzieren, Port setzen, fertig ist dein STUN-Endpunkt

Setze Port (Standard 3478), Active := True — dein Server beantwortet jetzt Binding-Requests mit der kanonischen RFC-8489-XOR-MAPPED-ADDRESS-Antwort.

uses
  sgcP2P;

var
  STUNServer: TsgcSTUNServer;
begin
  STUNServer := TsgcSTUNServer.Create(nil);
  STUNServer.Port := 3478;

  // optional: long-term credentials
  STUNServer.Authentication.Enabled  := True;
  STUNServer.Authentication.Realm    := 'example.com';
  STUNServer.OnSTUNAuthenticate := procedure(Sender: TObject;
    const aUsername: string; var aPassword: string;
    var Accept: Boolean)
  begin
    aPassword := LookupPassword(aUsername);
    Accept    := aPassword <> '';
  end;

  STUNServer.Active := True;
end;
// uses: sgcP2P
TsgcSTUNServer *STUNServer = new TsgcSTUNServer(this);
STUNServer->Port = 3478;
STUNServer->Active = true;

Was steckt drin

Ein selbst gehosteter STUN-Server — ideal für On-Premise-WebRTC-Deployments und Private-Cloud-Tests.

Binding-Request-Handler

Eingehende Binding-Requests werden mit XOR-MAPPED-ADDRESS, MAPPED-ADDRESS (Legacy) und FINGERPRINT beantwortet — entsprechend der Standard-RFC-8489-Antwortstruktur.

Long-Term-/Short-Term-Authentifizierung

Aktiviere Authentication.Enabled, um MESSAGE-INTEGRITY zu verlangen. OnSTUNAuthenticate liefert den Benutzernamen aus der Anfrage, sodass du das passende Passwort aus deinem Speicher zurückgibst.

Per-IP-Rate-Limit

Kombiniere mit TsgcWSRateLimiter, um eingehende STUN-Requests pro Quell-IP zu drosseln — nützlicher Schutz gegen Amplification-Missbrauch.

IPv4 / IPv6

Bindung an eine der Familien oder Dual-Stack über IPVersion. Die XOR-MAPPED-ADDRESS-Antwort verwendet die Familie des eingehenden Transports.

TLS über TCP (RFC 8489 §5)

Für die STUN-over-TLS-Variante konfiguriere den zugrundeliegenden TCP-Listener mit SSL-Optionen — nützlich, wenn UDP am Netzwerk-Egress blockiert ist.

Diagnose

OnSTUNRequest / OnSTUNResponse protokollieren jede Transaktion inklusive Method, MessageType und der geparsten Attributliste — ideal für das Debugging von Deployments.

Spezifikationen & Referenzen

Maßgebliche Quellen für das Protokoll, das diese Komponente implementiert.

Dokumentation & Demos

Springe direkt zur Komponentenreferenz, hole dir das sofort lauffähige Demo-Projekt und lade die Testversion herunter.

Online-Hilfe — TsgcSTUNServer Vollständige Referenz zu Eigenschaften, Methoden und Ereignissen dieser Komponente.
Demo-Projekt — Demos\35.P2P\02.STUN Sofort lauffähiges Beispielprojekt. Wird im sgcWebSockets-Paket mitgeliefert — lade unten die Testversion herunter.
Technisches Dokument (PDF) Funktionen, Schnellstart, Code-Beispiele für Delphi & C++ Builder und Primärquellen-Referenzen — nur diese Komponente.
Benutzerhandbuch (PDF) Umfassendes Handbuch, das jede Komponente der Bibliothek abdeckt.

Bereit, deinen eigenen STUN-Server zu betreiben?

Lade die kostenlose Testversion herunter und richte einen STUN-Endpunkt in Delphi ein.