GitHub - novnc/noVNC: VNC client web application
요약
websockify와 같은 프록시와 함께 사용됩니다.상세 내용
주요 특징:
noVNC는 모바일 브라우저를 포함한 모든 최신 브라우저를 지원합니다. 지원되는 인증 방식으로는 none, classical VNC, RealVNC의 RSA-AES, Tight, VeNCrypt Plain, XVP, Apple의 Diffie-Hellman, UltraVNC의 MSLogonII가 있습니다. 지원되는 VNC 인코딩은 raw, copyrect, rre, hextile, tight, tightPNG, ZRLE, JPEG, Zlib, H.264입니다. 데스크톱 스케일링, 클리핑 및 크기 조절, 앞/뒤 마우스 버튼, 로컬 커서 렌더링, 전체 유니코드 지원을 통한 클립보드 복사/붙여넣기, 번역, 일반적인 마우스 동작을 에뮬레이트하는 터치 제스처를 지원합니다. 라이선스는 주로 MPL 2.0을 따릅니다.
기술적 요구사항:
noVNC는 VNC 프로토콜 표준을 따르지만, 다른 VNC 클라이언트와 달리 WebSockets 지원을 필수로 요구합니다. Chrome 89+, Firefox 89+, Safari 15+, Opera 75+, Edge 89+와 같은 최신 브라우저 버전이 필요합니다. 많은 VNC 서버(예: x11vnc/libvncserver, QEMU, MobileVNC)는 WebSockets 지원을 내장하고 있지만, 그렇지 않은 서버의 경우 WebSockets to TCP socket 프록시가 필요합니다. noVNC의 자매 프로젝트인 websockify는 이러한 프록시 기능을 제공합니다.
핵심 방법론 및 배포:
noVNC는 VNC 프로토콜을 WebSockets를 통해 웹 브라우저에서 실행되도록 구현합니다. websockify는 이 과정에서 중요한 구성 요소로, VNC 서버와의 TCP 연결을 WebSockets 연결로 변환하여 브라우저가 VNC 세션에 접근할 수 있도록 중계합니다.
간단한 시작을 위해 novnc_proxy 스크립트가 사용됩니다. 이 스크립트는 websockify를 자동으로 다운로드하고 시작하며, 이는 미니 웹서버와 WebSockets 프록시를 포함합니다. 예를 들어, vnc 서버를 localhost:5901에 연결하려면 ./utils/novnc_proxy --vnc localhost:5901 명령을 사용합니다. 특정 IP에 바인딩하려면 --listen 옵션을 사용합니다.snap 패키지를 통한 설치도 지원됩니다. sudo snap install novnc 명령으로 설치할 수 있으며, novnc --listen 6081 --vnc localhost:5901과 같이 직접 실행할 수 있습니다. snap 환경에서는 인증서 파일이 디렉토리에 있어야 합니다.snap 패키지는 여러 VNC 서버에 연결하도록 구성될 수 있는 'novnc' 서비스를 데몬으로 실행하는 기능도 제공합니다. 와 같이 서비스를 생성할 수 있으며, sudo snap get novnc services.n6082로 구성을 확인하고, 와 같이 빈 값으로 설정하여 서비스를 비활성화할 수 있습니다.
noVNC는 자체 소프트웨어에 통합하거나 프로덕션 환경에 배포하기 위한 문서("Embedding" 및 "Library" 문서)를 별도로 제공합니다.
커뮤니티 및 기여:
프로젝트 웹사이트는 novnc.com이며, 개발자, 통합자, 사용자를 위한 noVNC discussion group이 있습니다. 버그 및 기능 요청은 GitHub issues를 통해 제출할 수 있습니다. "patchwelcome"으로 표시된 이슈는 기여를 시작하기에 좋은 지점이며, 기여 가이드라인이 제공됩니다.