KasmVNC - Linux网页远程桌面
KasmVNC提供基于网页的远程桌面或应用程序访问。虽然名称中包含VNC,但KasmVNC与TigerVNC、RealVNC和TurboVNC等其他VNC变体不同。为了支持现代技术并提高安全性,KasmVNC突破了定义VNC的RFB规范。用户可以通过任何现代浏览器访问KasmVNC,不支持传统的VNC查看器应用程序。KasmVNC在服务器和用户级别使用现代的基于YAML的配置,便于管理。
Kasm Technologies开发了Kasm Workspaces,一个容器化流媒体平台。Kasm开源了Workspace docker镜像,其中包括容器化的完整桌面和应用程序以及基础镜像,供开发人员创建定制的流媒体容器。这些容器可以单独使用,也可以在Kasm Workspaces平台中使用,该平台提供完整的企业级功能集。
文档
请勿使用master分支的README,除非您正在从master分支的最新版本自行编译KasmVNC。请使用特定版本的文档。
对于1.0.0版本之前的测试版,请使用该版本标记提交中的GitHub项目README。
安装
安装后必须断开并重新连接服务器,才能应用组成员身份。
Debian/Ubuntu/Kali
# 请在此处选择适用于您的发行版的软件包(在Assets下):
# https://github.com/kasmtech/KasmVNC/releases
wget <package_url>
sudo apt-get install ./kasmvncserver_*.deb
# 将您的用户添加到ssl-cert组
sudo adduser $USER ssl-cert
Oracle 8
# 请在此处选择适用于您的发行版的软件包(在Assets下):
# https://github.com/kasmtech/KasmVNC/releases
wget <package_url>
# 确保KasmVNC依赖项可用
sudo dnf config-manager --set-enabled ol8_codeready_builder
sudo dnf install oracle-epel-release-el8
sudo dnf localinstall ./kasmvncserver_*.rpm
# 将您的用户添加到kasmvnc-cert组
sudo usermod -a -G kasmvnc-cert $USER
CentOS 7
# 请在此处选择适用于您的发行版的软件包(在Assets下):
# https://github.com/kasmtech/KasmVNC/releases
wget <package_url>
# 确保KasmVNC依赖项可用
sudo yum install epel-release
sudo yum install ./kasmvncserver_*.rpm
# 将您的用户添加到kasmvnc-cert组
sudo usermod -a -G kasmvnc-cert $USER
入门指南
以下示例提供了使用提供的工具进行KasmVNC基本使用的方法。有关所有实用程序和运行时环境的完整文档,请参阅我们的KasmVNC文档
# 启动会话并指导您设置用户并选择默认桌面环境
vncserver
# 使用mate桌面环境启动会话
vncserver -select-de mate
# 添加具有读/写权限的新用户
vncpasswd -u my_username -w -r
# 查看日志
tail -f ~/.vnc/*.log
# 获取当前会话及其显示ID列表
vncserver -list
# 终止显示ID为:2的VNC会话
vncserver -kill :2
配置
KasmVNC通过基于YAML的配置进行配置。服务器级配置位于/etc/kasmvnc/kasmvnc.yaml
。对此文件的编辑适用于所有用户。单个用户可以通过在其配置文件~/.vnc/kasmvnc.yaml
中指定来覆盖服务器全局配置。
以下配置显示了所有默认设置。许多编码设置可以被客户端覆盖,除非runtime_configuration.allow_client_to_override_kasm_server_settings
设置为false。默认情况下,允许客户端修改编码设置。
有关每个设置的完整描述,请参阅配置参考。
desktop:
resolution:
width: 1024
height: 768
allow_resize: true
pixel_depth: 24
gpu:
hw3d: false
drinode: /dev/dri/renderD128
network:
protocol: http
interface: 0.0.0.0
websocket_port: auto
use_ipv4: true
use_ipv6: true
udp:
public_ip: auto
port: auto
stun_server: auto
ssl:
pem_certificate: /etc/ssl/certs/ssl-cert-snakeoil.pem
pem_key: /etc/ssl/private/ssl-cert-snakeoil.key
require_ssl: true
user_session:
new_session_disconnects_existing_exclusive_session: false
concurrent_connections_prompt: false
concurrent_connections_prompt_timeout: 10
idle_timeout: never
keyboard:
remap_keys:
ignore_numlock: false
raw_keyboard: false
pointer:
enabled: true
runtime_configuration:
allow_client_to_override_kasm_server_settings: true
allow_override_standard_vnc_server_settings: true
allow_override_list:
- pointer.enabled
- data_loss_prevention.clipboard.server_to_client.enabled
- data_loss_prevention.clipboard.client_to_server.enabled
- data_loss_prevention.clipboard.server_to_client.primary_clipboard_enabled
日志记录:
日志写入器名称: all
日志目标: 日志文件
级别: 30
安全:
暴力破解保护:
黑名单阈值: 5
黑名单超时: 10
数据丢失防护:
可见区域:
# 上: 10
# 左: 10
# 右: 40
# 下: 40
隐藏区域:
允许点击按下: false
允许点击释放: false
剪贴板:
操作间延迟: 无
允许的MIME类型:
- chromium/x-web-custom-data
- text/html
- image/png
服务器到客户端:
启用: true
大小: 无限制
主剪贴板启用: false
客户端到服务器:
启用: true
大小: 无限制
键盘:
启用: true
速率限制: 无限制
日志记录:
级别: 关闭
编码:
最大帧率: 60
全帧更新: 无
矩形编码模式:
最小质量: 7
最大质量: 8
考虑无损质量: 10
矩形压缩线程: 自动
视频编码模式:
JPEG质量: -1
WebP质量: -1
最大分辨率:
宽度: 1920
高度: 1080
进入视频编码模式:
时间阈值: 5
面积阈值: 45%
退出视频编码模式:
时间阈值: 3
日志记录:
级别: 关闭
缩放算法: 渐进式双线性
比较帧缓冲: 自动
ZRLE Zlib级别: 自动
Hextile改进压缩: true
服务器:
HTTP:
头部:
- Cross-Origin-Embedder-Policy=require-corp
- Cross-Origin-Opener-Policy=same-origin
HTTPD目录: /usr/share/kasmvnc/www
高级:
X字体路径: 自动
Kasm密码文件: ${HOME}/.kasmpasswd
X权限文件: 自动
自动关闭:
无用户会话超时: 永不
活跃用户会话超时: 永不
非活跃用户会话超时: 永不
命令行:
提示: true
新功能!
- 更快的JPEG压缩(通过静态链接libjpeg-turbo)
- WebP图像压缩以更好地利用带宽
- 根据服务器CPU可用性自动混合WebP和JPEG
- 多线程图像编码,为多核服务器提供更流畅的帧率
- WebRTC UDP传输
- 用于本地局域网的无损QOI图像格式
- 全屏视频检测,进入可配置的视频模式以获得更好的全屏视频播放性能
- 基于屏幕变化率的动态JPEG/WebP图像压缩质量设置
- 无缝剪贴板支持(在基于Chromium的浏览器上)
- 支持文本、图像和格式化文本的二进制剪贴板(在基于Chromium的浏览器上)
- 允许客户端设置/更改大多数配置设置
- 数据丢失防护功能
- 按键记录
- 剪贴板记录
- 上下行剪贴板传输最大大小
- 剪贴板操作之间所需的最小时间
- 键盘输入速率限制
- 屏幕区域选择
- 发布版中包含适用于Debian、Ubuntu和Kali Linux的Deb软件包
- 适用于CentOS、Oracle、OpenSUSE、Fedora的RPM软件包。RPM软件包目前无法更新且未发布,但您可以构建和安装它们。请参阅构建文档。
- 添加用于远程控制和获取KasmVNC信息的Web API
- 多用户支持,权限可通过API更改
- Web UI使用webpack以缩短加载时间
- 网络和CPU瓶颈统计
- 相对光标支持(游戏指针模式)
- 光标锁定
- 支持扩展字符语言的IME
- 更好的移动设备支持
- 使用开源驱动程序(AMDGPU、Intel、ATI、ARM)的DRI3 GPU加速
未来目标:
- H264编码
### 从源代码编译
请参阅builder/README.md。我们将构建系统容器化以确保高度可重复的构建。
### 许可和致谢
请参阅LICENSE.TXT和ACKNOWLEDGEMENTS.md