我在笔记本电脑上设置了一个临时 Debian 12 实例,以便在将桌面从 Debian 10 迁移到 12 之前进行测试。到目前为止,唯一不起作用的是 TigerVNC 实例,但这很关键。
(是的,这篇文章很长,但我想确保查看它的任何人都有足够的信息可以继续阅读,并尽量减少后续问题的数量)
几年前,我在带有 Xfce4 桌面的 Debian 10 amd64 系统上设置了 Tigervnc-standalone-server,从那时起它就一直运行得很好。极其稳定,反应灵敏等等。但是,是时候迁移到 Debian 12 了,在我的一生中,我无法让 Tigervnc 在我设置的 Debian 12 测试系统上工作(使用 debian- 安装) 12.2.0-amd64-DVD-1.iso)
现有的 Debian 10 配置运行良好(有关不起作用的内容,请参阅下文):
套餐版本:
Tigervnc-standalone-server 1.9.0+dfsg-3+deb10u3
配置文件:
testuser@system:~$ cat ~/.vnc/xstartup
#!/bin/bash
xrdb $HOME/.Xresources
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4
(下面的 Xresources 是一个空文件,因此上面的 xrdb 行可能不会执行任何操作)
testuser@system:~$ cat ~/.Xresources
testuser@system:~$
(下面的配置文件中的几何形状是在启动命令中指定的,因此下面的文件可能也不重要)
testuser@system:~$ cat ~/.vnc/config
geometry=1920x1080
dpi=96
成功启动:
testuser@system:~$ vncserver :1 -geometry 1920x1080 -localhost no
New 'system.org:1 (testuser)' desktop at :1 on machine system.org
Starting applications specified in /home/testuser/.vnc/xstartup
Log file is /home/testuser/.vnc/system.org:1.log
Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /home/testuser/.vnc/passwd system.org:1 to connect to the VNC server.
testuser@system:~$
使用注意事项:
如果 Debian 系统重新启动,我将使用 kvm 登录 testuser 帐户,打开终端,然后输入上面的命令。然后,我将注销 KVM,然后在 Windows 计算机上使用 VNC 查看器 (RealVNC) 连接到 Debian 盒子。初次登录 Debian 后,我可以随意断开并重新连接 VNC 客户端,而无需注销 Debian 用户的桌面(家庭环境,无端口转发,这样做的安全问题最小)。工作完美。是的,我知道我可以将其配置为在启动时自动启动,但我宁愿将该部分保留为手动。
新的 Debian 12 配置尝试,没有一个有效:
套餐版本:
tigervnc-standalone-server 1.12.0+dfsg-8
$ vncpasswd 已执行,并为发出启动命令的同一用户创建了密码。当使用 VNC 仅启动 /usr/bin/xterm 时,远程 VNC 查看器会接受此密码。
配置文件:
~/.Xresources file: not present (wasn't needed before)
~/.vnc/config file: same as the Debian 10 file (defining geometry and dpi, but geometry is being overridden with the vncserver command)
~/.vnc/xstartup file: have tried multiple versions, none of which correctly start up an Xfce4 desktop on VNC. See below for details.
以下是我尝试过的 ~/.vnc/xstartup 的不同版本,以及尝试启动服务器时的相应输出:
1 原始的,复制 Debian 10 文件:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4
Tailed log output from $ vncserver command:
=================== tail /home/sysuser/.vnc/testcase.nodomain.org:1.log ===================
/usr/bin/startxfce4: X server already running on display :1
(process:2353): xfce4-session-CRITICAL **: 02:42:27.394: dbus-launch not found, the desktop will not work properly!
xfce4-session-Message: 02:42:27.515: SSH authentication agent is already running
gpg-agent: a gpg-agent is already running - not starting a new one
===========================================================================================
Session startup via '/home/sysuser/.vnc/xstartup' cleanly exited too early (< 3 seconds)!
2 没有 DBUS 未设置:
#!/bin/bash
unset SESSION_MANAGER
startxfce4
Tailed log output from $ vncserver command:
=================== tail /home/sysuser/.vnc/testcase.nodomain.org:1.log ===================
/usr/bin/startxfce4: X server already running on display :1
xfce4-session-Message: 01:46:16.716: SSH authentication agent is already running
gpg-agent: a gpg-agent is already running - not starting a new one
===========================================================================================
Session startup via '/home/sysuser/.vnc/xstartup' cleanly exited too early (< 3 seconds)!
3 没有任何未设置:
#!/bin/bash
startxfce4
Tailed log output from $ vncserver command:
=================== tail /home/sysuser/.vnc/testcase.nodomain.org:1.log ===================
/usr/bin/startxfce4: X server already running on display :1
xfce4-session: Another session manager is already running
===========================================================================================
Session startup via '/home/sysuser/.vnc/xstartup' exited with status 1!
共同点:
在所有情况下,上面的输出都遵循以下内容:
Maybe try something simple first, e.g.,
tigervncserver -xstartup /usr/bin/xterm
The X session exited with status 1!
Killing Xtigervnc process ID xxxx... success!
当我执行 $ vncserver -list 命令时,它返回时没有实例运行(标题下面没有任何内容)。
VNC的核心工作原理是:
我知道 VNC 服务器正在基础级别上工作,因为如果我将 xstartup 文件减少到以下内容:
#!/bin/bash
/usr/bin/xterm
然后,$ vncserver -list 命令将显示一个 X 实例,我可以从 Windows 查看器连接到它,并显示一个终端窗口(但没有其他内容)。所以这只是 Xfce4 无法正确启动的问题。
有任何想法吗??