noVNC: Thư viện và Ứng dụng Trình duyệt VNC HTML
Mô tả
noVNC là một thư viện JavaScript trình duyệt VNC HTML và một ứng dụng được xây dựng dựa trên thư viện đó. noVNC hoạt động tốt trên bất kỳ trình duyệt hiện đại nào, bao gồm trình duyệt di động (iOS và Android).
Nhiều công ty, dự án và sản phẩm đã tích hợp noVNC, bao gồm OpenStack, OpenNebula, LibVNCServer, và ThinLinc. Xem the Projects and Companies wiki page để biết danh sách đầy đủ hơn với thông tin và liên kết bổ sung.
Tin tức/trợ giúp/liên hệ
Trang web dự án có tại novnc.com. Các commit đáng chú ý, thông báo và tin tức được đăng tải tại @noVNC.
Nếu bạn là một nhà phát triển/tích hợp/người dùng của noVNC (hoặc muốn trở thành người dùng), vui lòng tham gia vào noVNC discussion group.
Các lỗi và yêu cầu tính năng có thể được gửi qua github issues. Nếu bạn có câu hỏi về việc sử dụng noVNC, vui lòng sử dụng trang discussion group trước. Chúng tôi cũng có một wiki với nhiều thông tin hữu ích.
Nếu bạn đang tìm kiếm nơi để bắt đầu đóng góp cho noVNC, một nơi tốt để bắt đầu sẽ là các vấn đề được đánh dấu là “patchwelcome”. Vui lòng kiểm tra contribution guide của chúng tôi.
Nếu bạn muốn bày tỏ lòng biết ơn đối với noVNC, bạn có thể quyên góp cho các tổ chức phi lợi nhuận tuyệt vời như: Compassion International, SIL, Habitat for Humanity, Electronic Frontier Foundation, Against Malaria Foundation, Nothing But Nets, v.v. Vui lòng tweet @noVNC nếu bạn làm điều đó.
Tính năng
- Hỗ trợ tất cả trình duyệt hiện đại bao gồm cả di động (iOS, Android)
- Các phương thức xác thực được hỗ trợ: không, VNC cổ điển, RSA-AES của RealVNC, Tight, VeNCrypt Plain, XVP, Diffie-Hellman của Apple, MSLogonII của UltraVNC
- Các mã hóa VNC được hỗ trợ: raw, copyrect, rre, hextile, tight, tightPNG, ZRLE, JPEG
- Hỗ trợ co giãn, cắt và thay đổi kích thước màn hình desktop
- Hiển thị con trỏ cục bộ
- Sao chép/dán clipboard với hỗ trợ Unicode đầy đủ
- Dịch thuật
- Cử chỉ chạm để mô phỏng các hoạt động chuột thông thường
- Chủ yếu được cấp phép dưới MPL 2.0, xem tài liệu cấp phép để biết chi tiết
Ảnh chụp màn hình
Chạy trên Firefox trước và sau khi kết nối:
Xem thêm ảnh chụp màn hình here.
Yêu cầu Trình duyệt
noVNC sử dụng nhiều công nghệ web hiện đại, vì vậy không có danh sách yêu cầu chính thức. Tuy nhiên, đây là các phiên bản tối thiểu mà chúng tôi hiện đã biết:
- Chrome 64, Firefox 79, Safari 13.4, Opera 51, Edge 79
Yêu cầu Máy chủ
noVNC tuân theo giao thức VNC tiêu chuẩn, nhưng khác với các trình VNC khác, nó yêu cầu hỗ trợ WebSockets. Nhiều máy chủ đã bao gồm hỗ trợ (ví dụ: x11vnc/libvncserver, QEMU, và MobileVNC), nhưng đối với các máy chủ khác, bạn cần sử dụng một proxy WebSockets đến cổng TCP. noVNC có một dự án liên quan là websockify cung cấp một proxy đơn giản như vậy.
Bắt đầu Nhanh
Sử dụng tập lệnh novnc_proxy
để tự động tải xuống và khởi động websockify, bao gồm một máy chủ web mini và proxy WebSockets. Tùy chọn --vnc
được sử dụng để chỉ định vị trí của máy chủ VNC đang chạy:
./utils/novnc_proxy --vnc localhost:5901
Nếu bạn không cần phải tiếp cận máy chủ web từ internet công cộng, bạn có thể kết nối với localhost:
./utils/novnc_proxy --vnc localhost:5901 --listen localhost:6081
Trỏ trình duyệt của bạn đến URL được sao chép từ tập lệnh novnc_proxy
. Nhấn nút Kết nối, nhập mật khẩu nếu máy chủ VNC đã được cấu hình, và tận hưởng!
Cài đặt từ Gói Snap
Chạy lệnh dưới đây để cài đặt phiên bản mới nhất của noVNC từ Snap:
sudo snap install novnc
Chạy noVNC từ Snap Trực tiếp
Bạn có thể chạy noVNC đã được cài đặt từ gói Snap trực tiếp với ví dụ sau:
novnc --listen 6081 --vnc localhost:5901 # /snap/bin/novnc if /snap/bin is not in your PATH
Nếu bạn muốn sử dụng các tệp chứng chỉ, do hạn chế tiêu chuẩn Snap, bạn cần đặt chúng trong thư mục /home/
novnc --listen 8443 --cert ~jsmith/snap/novnc/current/self.crt --key ~jsmith/snap/novnc/current/self.key --vnc ubuntu.example.com:5901
Chạy noVNC từ Snap như một Dịch vụ (Daemon)
Gói Snap cũng có khả năng chạy dịch vụ ‘novnc’ có thể được cấu hình để lắng nghe trên nhiều cổng và kết nối đến nhiều máy chủ VNC (hiệu quả là một dịch vụ chạy nhiều phiên bản của novnc). Hướng dẫn (với giá trị ví dụ):
Liệt kê các dịch vụ hiện tại (mặc định, nó sẽ trống rỗng):
sudo snap get novnc services
Key Value
services.n6080 {...}
services.n6081 {...}
Tạo một dịch vụ mới lắng nghe trên cổng 6082 và kết nối đến máy chủ VNC chạy trên cổng 5902 trên localhost:
sudo snap set novnc services.n6082.listen=6082 services.n6082.vnc=localhost:5902
(Bất kỳ dịch vụ nào bạn định nghĩa với ‘snap set’ sẽ tự động được khởi động) Lưu ý rằng tên của dịch vụ, ‘n6082’ trong ví dụ này, có thể là bất cứ cái gì miễn là nó không bắt đầu bằng số hoặc chứa dấu cách/ký tự đặc biệt.
Xem cấu hình của dịch vụ vừa được tạo:
sudo snap get novnc services.n6082
Key Value
services.n6082.listen 6082
services.n6082.vnc localhost:5902
Tắt một dịch vụ (lưu ý rằng do một hạn chế trong Snap, hiện tại không thể bỏ qua các biến cấu hình, việc đặt chúng thành giá trị trống là cách để tắt dịch vụ):
sudo snap set novnc services.n6082.listen='' services.n6082.vnc=''
(Bất kỳ dịch vụ nào bạn đặt thành trống với ‘snap set’ như thế này sẽ tự động bị tắt)
Xác minh rằng dịch vụ đã bị tắt (giá trị trống):
sudo snap get novnc services.n6082
Key Value
services.n6082.listen
services.n6082.vnc
Tích hợp và Triển khai
Vui lòng xem các tài liệu khác của chúng tôi để biết cách tích hợp noVNC vào phần mềm riêng của bạn hoặc triển khai ứng dụng noVNC trong môi trường sản xuất:
- Nhúng – Cho ứng dụng noVNC
- Thư viện – Cho thư viện JavaScript noVNC
Tác giả/Đóng góp
Xem tại tập tin AUTHORS để có danh sách tác giả (gần đầy đủ). Nếu bạn không có trong danh sách đó và bạn nghĩ rằng bạn nên có mặt, hãy gửi một yêu cầu PR để sửa chữa điều đó.
Nhóm chính:
- Samuel Mannehed (Cendio)
- Pierre Ossman (Cendio)
Những người đóng góp chính trước đây:
- Joel Martin (Người sáng lập dự án)
- Solly Ross (Red Hat / OpenStack)
Những đóng góp đáng chú ý:
- Giao diện và biểu tượng : Pierre Ossman, Chris Gordon
- Logo gốc : Michael Sersen
- Mã hóa chặt chẽ : Michael Tinglof (Mercuri.ca)
- Xác thực RealVNC RSA AES : Đội USTC Vlab
Thư viện bao gồm:
- base64 : Martijn Pieters (Digital Creations 2), Samuel Sieb (sieb.net)
- DES : Dave Zimmerman (Widget Workshop), Jef Poskanzer (ACME Labs)
- Pako : Vitaly Puzrin (https://github.com/nodeca/pako)
Bạn muốn có tên trong danh sách này không? Kiểm tra hướng dẫn của chúng tôi tại contribution guide và bắt đầu hack!
Chi tiết Tải về:
Tác giả: novnc
Mã nguồn: https://github.com/novnc/noVNC
Giấy phép: View license
Cảm ơn bạn!