Delphi 및 C++ Builder용 STUN 서버 컴포넌트 | eSeGeCe

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 및 C++ Builder에서 자체 호스팅 STUN 서버를 운영하는 것에 대해 자주 묻는 질문이에요.

TsgcSTUNServer 컴포넌트를 추가하고, Port(기본값 3478)를 설정한 다음 Active := True로 설정하세요. 그러면 서버가 인바운드 Binding 요청에 표준 XOR-MAPPED-ADDRESS 응답으로 답해요. 선택적으로 Authentication을 활성화하고 OnSTUNAuthenticate를 처리하여 long-term 자격 증명으로 MESSAGE-INTEGRITY를 요구할 수 있어요.
RFC 8489에 따라 STUN을 구현하여 Binding 및 Indication 메시지를 처리하고 XOR-MAPPED-ADDRESS, 레거시 MAPPED-ADDRESS 및 FINGERPRINT로 응답해요. IPv4와 IPv6, 선택적 STUN-over-TLS를 지원하며, NAT 동작 발견을 위해 RFC 5780을 참조해요.
아니요. TsgcSTUNServer는 직접 Delphi 또는 C++ Builder 애플리케이션에 내장하는 자체 호스팅 STUN 서버이므로, 별도의 coturn 인스턴스를 배포하고 운영할 필요가 없어요. 사설 네트워크, 온프레미스 WebRTC 배포, 직접 제어하는 ICE 부트스트래핑에 이상적이에요.
STUN 서버는 sgcWebSockets Enterprise 에디션의 일부이며 Delphi 7부터 최신 Delphi 릴리스까지, 그리고 해당하는 C++ Builder 버전을 Windows, macOS, Linux, iOS, Android에서 지원해요. 무료 체험판을 다운로드하여 직접 프로젝트에서 STUN 엔드포인트를 구축해 보세요.

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

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