피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Docker 없이 NSSM 기반 Windows 서비스로 구축한 RustDesk 서버 설계
RustDesk Server on Windows without Docker
AI 요약
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 등)의 중복 사용을 피하여 리소스 충돌 방지