最终效果
注:本文所使用的客户端为Aeroshell, 可以通过搜索引擎搜索: Aeroshell终端 获取最新版本。
deepin20.9 VNC桌面

Ubuntu 26.04 VNC桌面

Deepin 23.9 VNC桌面

openKylin 2.0 SP2 VNC桌面

前言
最近为了给自己的远程运维工具做图形化支持,我连续折腾了:
- Ubuntu 26.04
- Deepin 20.9
- Deepin 23.9
- openKylin 2.0 SP2
目标非常简单:
基于 TigerVNC 实现稳定、可长期运行、支持中文输入法、支持桌面环境的远程桌面。
但真正开始做之后才发现:
Linux 桌面环境 + VNC 的兼容性,比想象中复杂得多。
尤其是:
- Wayland 与 X11 的冲突
- systemd 用户会话
- DBus
- DDE 桌面环境
- 输入法
- 窗口管理器
- compositing/compositor
几乎每个发行版都有自己的坑。
本文主要记录:
- 多发行版实际测试结果
- 各发行版兼容性
- TigerVNC 推荐配置
- Deepin/openKylin 的特殊问题
- 最终稳定方案
适合:
- 运维
- Linux 桌面远程管理
- VNC 部署
- 轻量远程工作站
- NAS/Linux 图形化管理
一、最终总体结论(先说结果)
经过大量测试后:
| 发行版 | 桌面环境 | 结果 |
|---|---|---|
| Ubuntu 26.04 | GNOME Flashback | 最稳定 |
| Deepin 20.9 | DDE | 可用 |
| openKylin 2.0 SP2 | UKUI | 可用 |
| Deepin 23.9 | DDE | 最复杂,问题最多 |
最终结论:
最推荐方案
Ubuntu + GNOME Flashback + TigerVNC
原因:
- 完全基于 X11
- 对 VNC 兼容最好
- 不依赖 Wayland
- 不依赖复杂 systemd 用户会话
- 稳定性最高
- 性能最好
二、TigerVNC 安装
所有发行版统一:
sudo apt update
sudo apt install tigervnc-standalone-server \
tigervnc-common \
dbus-x11 \
x11-xserver-utils -y
Ubuntu 还建议安装:
sudo apt install gnome-session-flashback -y
三、TigerVNC systemd 服务配置(通用)
这是最终长期稳定运行的配置。
路径:
/etc/systemd/system/vncserver@.service
配置:
[Unit]
Description=TigerVNC Server
After=network.target systemd-user-sessions.service
[Service]
Type=simple
User=guocf
Group=guocf
PAMName=login
WorkingDirectory=/home/guocf
PIDFile=/run/vncserver.pid
ExecStart=/usr/bin/vncserver :%i \
-geometry 1920x1080 \
-depth 24 \
-localhost no \
-SecurityTypes VncAuth \
-ZlibLevel 1 \
-FrameRate 60 \
-fg
ExecStop=/usr/bin/vncserver -kill :%i
SuccessExitStatus=0 1
[Install]
WantedBy=multi-user.target
重新加载并启动:
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1
sudo systemctl start vncserver@1
查看状态:
sudo systemctl status vncserver@1
四、Ubuntu 26.04 最终稳定方案
系统版本:
PRETTY_NAME="Ubuntu 26.04 LTS"
为什么 Ubuntu 最稳定?
因为:
GNOME Flashback 本质上:
- 基于 X11
- 不依赖 GNOME Shell
- 不依赖 Wayland
- 不依赖 GPU 合成
这对 VNC 极其友好。
相比:
- GNOME Wayland
- KDE Plasma Wayland
- 新版 DDE
GNOME Flashback 更像传统 Linux 桌面。
因此兼容性极高。
五、Ubuntu xstartup 最终方案
路径:
~/.config/tigervnc/xstartup
配置:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XDG_SESSION_TYPE=x11
export XDG_CURRENT_DESKTOP=GNOME-Flashback:GNOME
export XDG_MENU_PREFIX=gnome-flashback-
export GNOME_SHELL_SESSION_MODE=classic
[ -r "$HOME/.Xresources" ] && xrdb "$HOME/.Xresources"
vncconfig -iconic &
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
wait
增加执行权限:
chmod +x ~/.config/tigervnc/xstartup
六、Deepin 20.9 与 openKylin 为什么反而更简单?
这其实是一个很有意思的现象。
Deepin 20.9
Deepin 20.9 的 DDE:
- 仍然偏传统 X11
- systemd 用户依赖没那么重
- VNC 兼容性反而不错
因此:
TigerVNC 使用默认 xstartup 基本即可。
很多情况下:
vncserver
直接就能进入桌面。
openKylin
openKylin 的 UKUI 也类似。
传统 X11 桌面结构:
- systemd 依赖较少
- 不强依赖 Wayland
- DBus 问题较少
因此:
TigerVNC 默认配置即可进入桌面。
七、openKylin 的特殊坑:维护模式
这是 openKylin 最大的坑。
默认情况下:
系统会阻止很多安装操作。
安装 TigerVNC 前必须进入维护模式:
sudo mm-cli -o
否则:
apt install tigervnc-standalone-server
可能会失败。
这个问题在 Ubuntu / Deepin 中不存在。
八、Deepin 23.9:最难折腾的发行版
Deepin 23.9 是整个测试里最复杂的。
原因:
DDE 已经严重依赖:
- systemd 用户会话
- dbus
- compositing
- ukwm
- Wayland/X11 混合环境
因此会出现:
- 黑屏
- 秒退
- 桌面不显示
- Dock 消失
- Launcher 无法打开
- 点击延迟
- 输入法失效
- 窗口渲染异常
- 窗口透明异常
- 僵尸进程
等等问题。
九、Deepin 23.9 最终可用方案
路径:
~/.vnc/xstartup
配置:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export DISPLAY=:1
export XDG_SESSION_TYPE=x11
export XDG_CURRENT_DESKTOP=Deepin
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
# 等待 X 服务稳定
sleep 2
# 重启输入法
pkill -f fcitx5
fcitx5 -d &
# 启动 dbus
dbus-launch --sh-syntax > /tmp/dbus.env
source /tmp/dbus.env
# 启动 dde-session
/usr/bin/dde-session &
sleep 1
# 补充桌面组件
/usr/bin/dde-launcher &
/usr/bin/dde-dock &
/usr/bin/dde-desktop &
wait
增加执行权限:
chmod +x ~/.vnc/xstartup
十、为什么 Deepin 23.9 这么难?
核心原因:
DDE 已经越来越接近 Wayland 架构
而 VNC:
本质还是传统 X11 思维。
于是:
- Wayland
- systemd user session
- DBus
- compositor
与 TigerVNC 出现了严重冲突。
尤其:
新版 DDE 的:
- ukwm
- dde-session
- 窗口特效
- 透明效果
都严重依赖现代图形栈。
而 TigerVNC:
本质上是:
“虚拟 X Server”。
因此兼容性天然存在问题。
十一、最常见的问题
1、连接后黑屏
原因:
桌面环境没有真正启动。
错误示例:
startdde
正确方式:
dde-session
2、连接后秒退
原因:
dbus 会话不存在。
解决:
dbus-launch --sh-syntax
3、输入法失效
解决:
export XMODIFIERS=@im=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
4、点击卡顿
尤其 Deepin 23。
现象:
- 点击菜单反应慢
- Dock 延迟
- 弹窗延迟
- 应用打开很慢
根本原因:
窗口合成器。
关闭效果后会明显改善:
gsettings set org.ukui.control-center.personalise effect false
5、窗口黑屏
原因:
窗口管理器异常。
通常与:
- ukwm
- compositor
- GPU acceleration
有关。
十二、TigerVNC 参数优化
低延迟
推荐:
-ZlibLevel 1
压缩更低:
CPU 更省。
远程响应更快。
高帧率
-FrameRate 60
远程桌面明显更流畅。
尤其:
- 拖动窗口
- 浏览网页
- 编辑代码
体验会好很多。
分辨率
-geometry 1920x1080
远程开发体验更好。
如果带宽低:
可降低:
-geometry 1280x720
色深
-depth 24
兼容性最好。
不要轻易使用:
-depth 32
部分桌面环境会异常。
十三、最终推荐方案
如果你只是想:
- 稳定
- 低折腾
- 可长期运行
- 图形化远程管理
推荐:
Ubuntu + GNOME Flashback + TigerVNC
这是目前我测试下来:
稳定性最好的 Linux VNC 方案。
十四、未来趋势
经过多发行版测试后:
我最大的感受其实是:
Linux 图形桌面已经越来越偏向 Wayland。
而传统 VNC:
本质是 X11 时代的产物。
所以:
未来:
- TigerVNC
- x11vnc
- vino
这些方案会越来越难适配现代 Linux 桌面。
尤其:
- DDE
- GNOME Shell
- KDE Plasma 6
都已经越来越依赖:
- Wayland
- systemd user session
- compositor
因此:
未来更推荐:
- RDP
- RustDesk
- Waypipe
- Sunshine + Moonlight
这种现代远程桌面方案。
十五、最后总结
如果:
你仍然需要:
- 轻量
- 低资源占用
- Linux 原生
- 纯 TCP
- 运维场景
- SSH 配合图形桌面
那么:
TigerVNC 依然是目前最值得使用的方案之一。
尤其:
- 版本学习、体验
- 服务器管理
- 内网桌面
- 开发环境
- Docker GUI
- Linux 工作站
依然非常实用。
但:
如果是现代 Linux 桌面长期远程办公:
建议逐步转向:
- RDP
- RustDesk
- Wayland Remote Desktop
等新方案。