피드로 돌아가기
RustDesk Server on Windows without Docker
Dev.toDev.to
Infrastructure

Docker 없이 NSSM 기반 Windows 서비스로 구축한 RustDesk 서버 설계

RustDesk Server on Windows without Docker

MatBanik2026년 4월 16일7intermediate

Context

공공 인프라 의존성을 제거하고 LAN 내 독립적인 원격 제어 환경을 구축하려는 요구사항 발생. Docker 도입 없이 Windows 네이티브 환경에서 hbbs와 hbbr 바이너리를 안정적으로 운영해야 하는 제약 조건 존재.

Technical Solution

  • NSSM dkxce fork 채택을 통한 최신 Windows 버전의 서비스 관리 호환성 확보
  • AppNoConsole 설정을 통한 콘솔 할당 실패로 인한 서비스 무한 재시작 루프 방지
  • AppDirectory 명시적 지정으로 System32 경로에 키 파일 및 DB가 생성되는 경로 오염 차단
  • NlaSvc 의존성 설정 및 SERVICE_DELAYED_AUTO_START 적용으로 네트워크 어댑터 준비 전 서비스 시작으로 인한 포트 바인딩 실패 해결
  • hbbs(ID/Rendezvous)와 hbbr(Relay) 간의 서비스 실행 순서 및 종속성 제어를 통한 시스템 안정성 강화
  • Ed25519 Keypair 기반의 상호 인증 구조를 통한 비인가 클라이언트 접속 차단

- Windows 서비스 등록 시 작업 디렉토리(Working Directory)를 명시적으로 지정하여 상대 경로 파일 생성 오류 방지 - 네트워크 의존 서비스의 경우 NlaSvc 종속성 설정을 통해 부팅 시 레이스 컨디션 방지 - GUI 래퍼와 서비스 관리 도구(NSSM 등)의 중복 사용을 피하여 리소스 충돌 방지

원문 읽기