据我所知,GDM3 与 RealVNC 不兼容,所以我卸载了它并安装了 LightDM。但是现在当我尝试连接到 RealVNC 时却无法到达任何地方。
我之前所做的是运行:
sudo -u localuser vncserver-virtual
...它在端口 5901 上打开了一个 VNC 服务器,我可以连接到该服务器。我仍然可以,但现在它显示消息:
Xsession: unable to start X session --- no .xsession file, no .Xsession file, no session managers, no window managers, and no terminal emulators found; aborting.
我猜我需要对我的/etc/vnc/xstartup.custom
文件进行更改才能以某种方式让 X 检测 LightDM?目前的内容似乎以 GDM 为中心:
#!/bin/sh
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
if [ -f /usr/bin/gnome-session ]; then
# Some gnome session types won't work with Xvnc, try to pick a sensible
# default.
for SESSION in "ubuntu-2d" "2d-gnome" "gnome-classic" "gnome-fallback"; do
if [ -f /usr/share/gnome-session/sessions/$SESSION.session ]; then
DESKTOP_SESSION=$SESSION; export DESKTOP_SESSION
GDMSESSION=$SESSION; export GDMSESSION
STARTUP="/usr/bin/gnome-session --session=$SESSION"; export STARTUP
fi
done
fi
unset SESSIONBIN
XTERM_COMMAND="xterm -geometry 80x24+10+10 -ls"
if [ -x /etc/X11/Xsession ]; then SESSIONBIN="/etc/X11/Xsession"
elif [ -x /etc/X11/xdm/Xsession ]; then SESSIONBIN="/etc/X11/xdm/Xsession"
elif [ -x /etc/X11/xinit/Xsession ]; then SESSIONBIN="/etc/X11/xinit/Xsession"
elif [ -x /etc/X11/gdm/Xsession ]; then SESSIONBIN="/etc/X11/gdm/Xsession gnome-session"
elif [ -x /etc/gdm/Xsession ]; then SESSIONBIN="/etc/gdm/Xsession gnome-session"
elif [ -x /etc/kde/kdm/Xsession ]; then SESSIONBIN="/etc/kde/kdm/Xsession"
elif [ -x /usr/dt/bin/Xsession ]; then
XSTATION=1
DTXSERVERLOCATION=local
export XSTATION DTXSERVERLOCATION
SESSIONBIN="/usr/dt/bin/Xsession"
elif [ -x /usr/dt/bin/dtsession ]; then SESSIONBIN="/usr/dt/bin/dtsession"
elif which twm > /dev/null 2>&1; then
$XTERM_COMMAND &
SESSIONBIN="twm"
fi
if [ "x${SESSIONBIN}" = "x" ]; then
echo "No session located; just starting a terminal"
$XTERM_COMMAND
echo "Terminal closed with return code $?"
else
echo "Starting session: $SESSIONBIN"
$SESSIONBIN
echo "Session terminated with return code $?"
fi
vncserver-virtual -kill $DISPLAY
我需要更改哪些想法才能让 RealVNC 会话连接到 LightDM?
答案1
原来问题是我没有安装桌面环境,而且是vncserver-???
在用户模式下运行的。 VNC 服务器尝试以运行它的用户身份登录,而不是进入登录屏幕,并且显然失败了,因为没有桌面环境!
因此,您要么必须安装桌面环境,要么以服务模式运行 VNC 服务器才能获得登录屏幕。
答案2
默认情况下,桌面管理器配置为不接受网络连接。 gdm
似乎已删除该功能,因此我用于xdm
VNC 连接。如果 LightDM 仍然能够接受连接,您将需要启用它。
目录会有所不同,但我使用的步骤xdm
是:
- 编辑 /etc/X11/xdm/xdm-config 以注释掉 DisplayManager.requestPort 行。默认情况下,xdm 配置为不侦听 IP 连接。
- 编辑 /etc/X11/xdm/Xaccess 以取消注释允许任何主机获取登录窗口的行。或者,您可以只添加一行读取 localhost。
- 您可能需要编辑 /etc/X11/xdm/Xsetup 以取消注释 xsetroot 行。 xsetroot 还可以用于提供背景图片或其他效果。
这些步骤摘自我的博客文章使用 VNC 和 RDP 的远程桌面。