前言
KasmVNC 是一款基于 Web 的远程桌面方案,相比传统 VNC,它拥有更好的画面压缩、剪贴板双向同步、文件拖拽上传下载以及原生 HTTPS 加密等优势。本文将介绍如何在 Ubuntu Server(无 GUI) 上原生安装 KasmVNC,全程不使用 Docker,最终通过浏览器即可访问服务器的 XFCE 桌面,并完成中文界面汉化和中文输入法的配置。
一、安装 XFCE 桌面环境
sudo apt update
sudo apt install xfce4 xfce4-goodies -y
安装完成后无需重启,继续下一步。
二、安装 KasmVNC
2.1 自动检测版本并下载(推荐)
使用以下脚本自动获取当前 Ubuntu 版本代号和最新的 KasmVNC 版本:
CODENAME=$(lsb_release -cs) && VERSION=$(curl -s https://api.github.com/repos/kasmtech/KasmVNC/releases/latest | grep tag_name | cut -d '"' -f 4 | sed 's/v//') && wget "https://github.com/kasmtech/KasmVNC/releases/download/v${VERSION}/kasmvncserver_${CODENAME}_${VERSION}_amd64.deb"
2.2 手动下载(备选)
如果自动下载失败,可以手动访问 KasmVNC Releases 选择对应版本的 .deb 包下载。
2.3 安装 .deb 包
sudo dpkg -i kasmvncserver_*.deb
sudo apt -f install -y
2.4 权限配置
将当前用户加入 ssl-cert 组:
sudo adduser $USER ssl-cert
⚠️ 重要:执行后必须退出当前 SSH 会话,重新登录。
三、启动 KasmVNC 并设置密码
重新登录 SSH 后执行:
vncserver
首次启动会进入交互设置:
- 设置网页登录密码(至少 8 位)
- 设置只读密码(可跳过)
- 选择桌面环境:输入
xfce4-session
启动成功后,会输出访问地址:https://你的服务器IP:8444
四、放行防火墙
sudo ufw allow 8444/tcp
sudo ufw reload
云服务商还需在安全组放行 8444 端口。
五、配置中文界面
5.1 安装中文语言包和字体
sudo apt install language-pack-zh-hans fonts-noto-cjk fonts-wqy-zenhei -y
5.2 生成中文编码并设置系统语言
sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 LANGUAGE="zh_CN:zh:en_US"
5.3 配置 XFCE 桌面加载中文
编辑 ~/.xinitrc:
nano ~/.xinitrc
粘贴以下内容:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
export LANGUAGE="zh_CN:zh"
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5
exec xfce4-session
保存退出后赋予执行权限:
chmod +x ~/.xinitrc
5.4 重启 KasmVNC 使中文生效
vncserver -kill :1
vncserver -geometry 1920x1080 :1
六、浏览器访问中文桌面
打开浏览器访问 https://你的服务器IP:8444,输入密码即可。若界面仍有英文,可在 XFCE 的 设置 → 会话和启动 → 环境 中手动添加 LANG、LC_ALL、LANGUAGE 变量后重启 vncserver。
七、安装中文输入法
sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-configtool -y
安装后重启 KasmVNC,桌面右上角会出现输入法图标,可切换拼音输入。
八、配置开机自启
提供两种方式:用户级服务(--user)和系统级服务。
方式一:用户级服务
创建 ~/.config/systemd/user/kasmvnc.service,内容如下:
[Unit]
Description=KasmVNC Native Desktop
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/vncserver -geometry 1920x1080 :1
Restart=on-failure
[Install]
WantedBy=default.target
启用:
systemctl --user daemon-reload
systemctl --user enable kasmvnc.service
systemctl --user start kasmvnc.service
sudo loginctl enable-linger $USER
方式二:系统级服务
创建 /etc/systemd/system/kasmvnc.service:
[Unit]
Description=KasmVNC Native Desktop
After=network.target
[Service]
Type=simple
User=你的用户名
Environment="HOME=/home/你的用户名"
Environment="LANG=zh_CN.UTF-8"
Environment="LC_ALL=zh_CN.UTF-8"
Environment="LANGUAGE=zh_CN:zh"
ExecStart=/usr/bin/vncserver -geometry 1920x1080 :1
ExecStop=/usr/bin/vncserver -kill :1
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用:
sudo systemctl daemon-reload
sudo systemctl enable kasmvnc.service
sudo systemctl start kasmvnc.service
九、常见问题与排查
- 黑屏:安装
dbus-x11或编辑~/.vnc/xstartup加上startxfce4 &。 - 中文方块乱码:安装中文字体后重启。
- 输入法无法切换:确认环境变量正确,或手动执行
fcitx5 &。 - 密码长度不足:删除
~/.vnc/passwd重新设置。 - 端口被占用:修改
~/.vnc/config中的 websocket_port。
十、总结
KasmVNC 在 Ubuntu Server 上的原生部署非常轻量,对比完整 Kasm Workspaces(依赖 Docker),这种方式更适合不需要容器隔离、单用户使用或资源受限的场景。搭配 XFCE 桌面和中文环境,整体内存占用控制在 1.5GB 以内,性能表现出色,适合作为轻量级远程开发或管理桌面。
参考链接:

评论