我正在尝试在 x86_64 ubuntu 20.10 上安装 vnc,它是无头的。 我愿意不是想要 Xfce,所有的教程都莫名其妙地告诉你安装 xfce。我确实不是想要安装这个包因为我已经有桌面管理器:Gnome(Ubuntu 上的默认设置)。
据我所知,digital ocean 上的指南似乎是最好的,除了他们的 xstartup 是针对 xfce 的。我尝试按照说明操作,并用 gnome-session 替换 xfce,但只看到灰屏,无法与任何东西交互。
谁能帮助我解决这个问题或者给我指明正确的方向。
谢谢!
编辑:这是我的 xstartup:
# Config requires following packages:
# gnome-panel nautilus gnome-terminal metacity
#
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
gnome-session &
gnome-panel &
metacity &
gnome-terminal &
我使用以下命令在远程机器上通过 ssh 运行 vncserver:
$ vncserver
New 'X' desktop is media-server:1
Starting applications specified in /home/kevin/.vnc/xstartup
Log file is /home/kevin/.vnc/media-server:1.log
以下是日志:
04/02/21 10:40:28 Xvnc version TightVNC-1.3.10
04/02/21 10:40:28 Copyright (C) 2000-2009 TightVNC Group
04/02/21 10:40:28 Copyright (C) 1999 AT&T Laboratories Cambridge
04/02/21 10:40:28 All Rights Reserved.
04/02/21 10:40:28 See http://www.tightvnc.com/ for information on TightVNC
04/02/21 10:40:28 Desktop name 'X' (media-server:1)
04/02/21 10:40:28 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
04/02/21 10:40:28 Listening for VNC connections on TCP port 5901
Font directory '/usr/share/fonts/X11/75dpi/' not found - ignoring
Font directory '/usr/share/fonts/X11/100dpi/' not found - ignoring
(gnome-panel:123980): gnome-panel-WARNING **: 10:40:30.098: Failed to acquire bus name!
metacity-Message: 10:40:30.227: could not find XKB extension.
(metacity:123981): metacity-WARNING **: 10:40:30.232: Failed to create compositor: Missing composite extension required for compositing
Xlib: extension "X-Resource" missing on display ":1".
答案1
当然可以!没有什么神奇的,虚拟显示器、桌面管理器和 VNC 服务器是必须正确组合在一起的 3 个部分。
VNC 服务器设置包括 3 个主要步骤:
- Xvfb - 启动虚拟显示器(不仅可用于 GUI 桌面,还可直接在其中运行游戏或 Chromium 等应用程序)
export DISPLAY=:1
Xvfb $DISPLAY -screen 0 1024x768x16
$DISPLAY
连接到同一个 Xvfb并在那里渲染桌面的GUI 会话
对于 XFCE 使用这个
sudo apt install xfce4 xfce4-goodies
xfce4-session # start xfce4
对于默认的 gnome用这个:
gnome-shell --replace # start ubuntu gnome
- xvnc 服务器(tightvncserver 或 x11vnc)。x11vnc 更好,因为复制粘贴功能开箱即用,Chromium 应用程序也可以使用。tightvncserver 无法运行 Chromium 应用程序。VNC 服务器还连接到外部客户端
$DISPLAY
并提供对外部客户端的访问。不要以 sudo 身份运行!
sudo apt install x11vnc
密码设置
x11vnc -storepasswd
x11vnc -display $DISPLAY -forever -loop -noxdamage -repeat -rfbauth /home/ubuntu/.vnc/passwd -rfbport 5900 -shared
添加到 crontab 中crontab -e
的最终脚本@reboot /path/to/script.sh
&
使用语法在后台运行脚本
对于XFCE
#!/bin/bash
source /home/ubuntu/.bashrc
export DISPLAY=:1
Xvfb $DISPLAY -screen 0 2048x1536x24 &
xfce4-session &
x11vnc -display $DISPLAY -forever -loop -noxdamage -repeat -rfbauth /home/ubuntu/.vnc/passwd -rfbport 5900 -shared &
对于默认的 gnome
#!/bin/bash
source /home/ubuntu/.bashrc
export DISPLAY=:1
Xvfb $DISPLAY -screen 0 2048x1536x24 &
gnome-shell --replace &
x11vnc -display $DISPLAY -forever -loop -noxdamage -repeat -rfbauth /home/ubuntu/.vnc/passwd -rfbport 5900 -shared &