STUN-server

Draai je eigen STUN-server (RFC 8489) in Delphi. Beantwoord binding requests met het canonieke XOR-MAPPED-ADDRESS antwoord — handig in private netwerken, on-premise deployments en ICE bootstrapping.

TsgcSTUNServer

Een getypeerde RFC 8489 STUN-server — verwerkt Binding / Indication berichten, antwoordt met XOR-MAPPED-ADDRESS en kan optioneel MESSAGE-INTEGRITY afdwingen voor long-term authenticatie.

Componentklasse

TsgcSTUNServer

Protocol

STUN (RFC 8489)

Platforms

Windows, macOS, Linux, iOS, Android

Editie

Enterprise

Plaatsen, poort instellen, klaar is je STUN-endpoint

Stel Port in (standaard 3478), Active := True — je server beantwoordt Binding requests nu met het canonieke RFC 8489 XOR-MAPPED-ADDRESS antwoord.

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;

Wat zit erin

Een self-hosted STUN-server — ideaal voor on-premise WebRTC-deployments en private-cloud testen.

Binding request handler

Inkomende Binding requests worden beantwoord met XOR-MAPPED-ADDRESS, MAPPED-ADDRESS (legacy) en FINGERPRINT — passend bij de standaard RFC 8489 antwoordvorm.

Long-term / short-term auth

Zet Authentication.Enabled aan om MESSAGE-INTEGRITY te vereisen. OnSTUNAuthenticate geeft de username uit het verzoek door zodat jij het bijbehorende wachtwoord uit je store kunt teruggeven.

Per-IP rate limit

Combineer met TsgcWSRateLimiter om inkomende STUN-verzoeken per bron-IP te beperken — nuttige bescherming tegen amplification-misbruik.

IPv4 / IPv6

Bind aan beide families of dual-stack via IPVersion. Het XOR-MAPPED-ADDRESS antwoord gebruikt de familie van het inkomende transport.

TLS over TCP (RFC 8489 §5)

Configureer voor de STUN-over-TLS variant de onderliggende TCP-listener met SSL-opties — handig wanneer UDP wordt geblokkeerd aan de netwerkrand.

Diagnose

OnSTUNRequest / OnSTUNResponse loggen elke transactie inclusief Method, MessageType en de geparseerde attribuutlijst — ideaal om deployments te debuggen.

Specificaties & referenties

Autoritatieve bronnen voor het protocol dat dit component implementeert.

Documentatie & demo's

Direct linken naar de componentreferentie, het kant-en-klare demoproject pakken en de proefversie downloaden.

Online help — TsgcSTUNServer Volledige referentie van eigenschappen, methoden en gebeurtenissen voor dit component.
Demoproject — Demos\35.P2P\02.STUN Kant-en-klaar voorbeeldproject. Zit in het sgcWebSockets-pakket — download hieronder de proefversie.
Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi & C++ Builder en primaire bronverwijzingen — alleen dit component.
Gebruikershandleiding (PDF) Uitgebreide handleiding voor elk component in de bibliotheek.

Klaar om je eigen STUN-server te draaien?

Download de gratis proefversie en zet een STUN-endpoint op in Delphi.