STUN 서버

Delphi에서 자체 STUN(RFC 8489) 서버를 실행하세요. 표준 XOR-MAPPED-ADDRESS 응답으로 바인딩 요청에 답해요 — 사설 네트워크, 온프레미스 배포, ICE 부트스트래핑에 유용해요.

TsgcSTUNServer

타입이 지정된 RFC 8489 STUN 서버예요 — Binding / Indication 메시지를 처리하고 XOR-MAPPED-ADDRESS로 응답하며, 장기 인증을 위해 선택적으로 MESSAGE-INTEGRITY를 강제해요.

컴포넌트 클래스

TsgcSTUNServer

프로토콜

STUN (RFC 8489)

플랫폼

Windows, macOS, Linux, iOS, Android

에디션

Enterprise

컴포넌트를 놓고, 포트를 설정하면 STUN 엔드포인트 완성

Port(기본값 3478)를 설정하고 Active := True 하면 끝이에요 — 이제 서버가 표준 RFC 8489 XOR-MAPPED-ADDRESS 응답으로 Binding 요청에 답해요.

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;

내부 구성

자체 호스팅 STUN 서버 — 온프레미스 WebRTC 배포와 사설 클라우드 테스트에 이상적이에요.

Binding 요청 핸들러

들어오는 Binding 요청에 XOR-MAPPED-ADDRESS, MAPPED-ADDRESS(레거시), FINGERPRINT로 응답해요 — 표준 RFC 8489 응답 형식을 따라요.

장기/단기 인증

Authentication.Enabled를 켜면 MESSAGE-INTEGRITY가 필요해져요. OnSTUNAuthenticate가 요청의 사용자명을 제공하므로, 저장소에서 해당하는 비밀번호를 반환하면 돼요.

IP별 요청 제한

TsgcWSRateLimiter와 함께 사용해 소스 IP별 STUN 요청을 제한해요 — 증폭 공격 방어에 유용해요.

IPv4 / IPv6

IPVersion으로 어느 한쪽 또는 듀얼 스택에 바인딩해요. XOR-MAPPED-ADDRESS 응답은 들어오는 전송 계층의 주소 체계를 사용해요.

TLS over TCP (RFC 8489 §5)

STUN-over-TLS 변형을 사용하려면 하위 TCP 리스너에 SSL 옵션을 구성하세요 — 네트워크 egress에서 UDP가 차단될 때 유용해요.

진단

OnSTUNRequest / OnSTUNResponse가 모든 트랜잭션을 기록해요 — Method, MessageType, 파싱된 속성 목록을 포함해 배포 디버깅에 좋아요.

명세 및 참고 자료

이 컴포넌트가 구현하는 프로토콜의 공인 출처예요.

문서 및 데모

컴포넌트 레퍼런스로 바로 이동하고, 바로 실행할 수 있는 데모 프로젝트를 받아보고, 체험판을 다운로드하세요.

온라인 도움말 — TsgcSTUNServer 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스예요.
데모 프로젝트 — Demos\35.P2P\02.STUN 바로 실행할 수 있는 예제 프로젝트예요. sgcWebSockets 패키지에 포함되어 있으니 아래에서 체험판을 다운로드해 보세요.
기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플, 출처 참고 자료예요.
사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서예요.

자체 STUN 서버를 운영할 준비가 되셨나요?

무료 체험판을 다운로드하고 Delphi에서 STUN 엔드포인트를 띄워보세요.