목록으로
GitHub - novnc/noVNC: VNC client web application
Service2025.11.16

GitHub - novnc/noVNC: VNC client web application

요약

️ noVNC는 VNC 클라이언트 JavaScript 라이브러리이자 이를 기반으로 구축된 웹 애플리케이션으로, 최신 브라우저(모바일 포함)에서 VNC 세션에 접근할 수 있도록 지원합니다.
다양한 VNC 인증 및 인코딩 방식을 지원하며, WebSockets을 필요로 하여 websockify와 같은 프록시와 함께 사용됩니다.
OpenStack과 같은 다양한 프로젝트에 통합되어 있으며, 손쉬운 설치 옵션과 활발한 커뮤니티 지원을 제공합니다.

상세 내용

noVNC는 HTML VNC 클라이언트 JavaScript 라이브러리이자, 이 라이브러리를 기반으로 구축된 애플리케이션입니다. noVNC는 모바일 브라우저(iOS 및 Android)를 포함한 모든 최신 브라우저에서 잘 작동합니다. OpenStack, OpenNebula, LibVNCServer, ThinLinc 등 여러 회사, 프로젝트 및 제품에 통합되어 있습니다.

주요 특징:
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 환경에서는 인증서 파일이 /home/<user>/snap/novnc/current//home/<user>/snap/novnc/current/ 디렉토리에 있어야 합니다.
snap 패키지는 여러 VNC 서버에 연결하도록 구성될 수 있는 'novnc' 서비스를 데몬으로 실행하는 기능도 제공합니다. sudosnapsetnovncservices.n6082.listen=6082services.n6082.vnc=localhost:5902sudo snap set novnc services.n6082.listen=6082 services.n6082.vnc=localhost:5902와 같이 서비스를 생성할 수 있으며, sudo snap get novnc services.n6082로 구성을 확인하고, sudosnapsetnovncservices.n6082.listen=services.n6082.vnc=sudo snap set novnc services.n6082.listen='' services.n6082.vnc=''와 같이 빈 값으로 설정하여 서비스를 비활성화할 수 있습니다.
noVNC는 자체 소프트웨어에 통합하거나 프로덕션 환경에 배포하기 위한 문서("Embedding" 및 "Library" 문서)를 별도로 제공합니다.

커뮤니티 및 기여:
프로젝트 웹사이트는 novnc.com이며, 개발자, 통합자, 사용자를 위한 noVNC discussion group이 있습니다. 버그 및 기능 요청은 GitHub issues를 통해 제출할 수 있습니다. "patchwelcome"으로 표시된 이슈는 기여를 시작하기에 좋은 지점이며, 기여 가이드라인이 제공됩니다.

원본 보기
GitHub
Shared by Anonymous