我正在尝试在 Ubuntu 20.04 上设置 TigerVNC(或者实际上是任何 VNC 服务器),但我开始感到沮丧,因为我找到的所有说明都不起作用,尽管我已经让它在 CentOS 上运行。这就是我想要实现的目标,据我了解,TigerVNC 应该能够处理它:
- 为多个用户提供 VNC 服务
- 应要求用户输入用户名和密码
- 它必须与 systemd 一起工作
我浏览过的有用的网页比我想列出的还要多,但最新的、稍微成功的一个是TigerVNC(在 Arch Linux 上), 这部分Running Xvnc with XDMCP for on demand sessions
。
系统很简单:Ubuntu 20.04 带有默认桌面,似乎是基于 GNOME 的——这不是我选择的,但这不适合我使用。/var/log/syslog
列出了我尝试连接时的大量输出,但我认为以下内容包含相关错误:
...
Jul 22 14:22:34 megatron org.gnome.SettingsDaemon.Wacom.desktop[555768]: Unable to init server: Could not connect: Connection refused
Jul 22 14:22:34 megatron org.gnome.SettingsDaemon.Wacom.desktop[555768]: Cannot open display:
Jul 22 14:22:34 megatron org.gnome.SettingsDaemon.Keyboard.desktop[555770]: Unable to init server: Could not connect: Connection refused
Jul 22 14:22:34 megatron org.gnome.SettingsDaemon.Keyboard.desktop[555770]: Cannot open display:
Jul 22 14:22:34 megatron gnome-session[555468]: gnome-session-binary[555468]: WARNING: App 'org.gnome.SettingsDaemon.Wacom.desktop' exited with code 1
Jul 22 14:22:34 megatron gnome-session-binary[555468]: WARNING: App 'org.gnome.SettingsDaemon.Wacom.desktop' exited with code 1
Jul 22 14:22:34 megatron gnome-session-binary[555468]: WARNING: App 'org.gnome.SettingsDaemon.Keyboard.desktop' exited with code 1
Jul 22 14:22:34 megatron gnome-session[555468]: gnome-session-binary[555468]: WARNING: App 'org.gnome.SettingsDaemon.Keyboard.desktop' exited with code 1
Jul 22 14:22:34 megatron gnome-session-binary[555468]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Jul 22 14:22:34 megatron gnome-session[555468]: gnome-session-binary[555468]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Jul 22 14:22:34 megatron gnome-shell[555777]: Failed to create backend: Unable to open display '127.0.0.1:1'
Jul 22 14:22:34 megatron org.gnome.SettingsDaemon.MediaKeys.desktop[555774]: Unable to init server: Could not connect: Connection refused
Jul 22 14:22:34 megatron org.gnome.SettingsDaemon.MediaKeys.desktop[555774]: Cannot open display:
...
在客户端 (OSX),我只看到一个对话框告诉我无法连接。我该如何解决这个问题?
答案1
好吧,我的回答有点晚了,但我希望它能有所帮助。我在 Ubuntu 22.04 上遇到了同样的问题,我花了两天时间才找到解决方案。
尝试这个:
在服务器上安装TigerVNC,即tigervnc-standalone-server。
按照指南设置服务器,例如
https://docs.01.org/clearlinux/latest/guides/network/vnc.html
参见“方法 3:通过 GDM 进行身份验证的多用户登录”
简要说明:
a) 创建 systemd 套接字文件/etc/systemd/system/xvnc.socket内容如下:[Unit] Description=XVNC Server on port 5900 [Socket] ListenStream=5900 Accept=yes [Install] WantedBy=sockets.target
b) 创建 systemd 服务文件/etc/systemd/系统/[电子邮件保护]内容如下:
[Unit] Description=Daemon for each XVNC connection [Service] ExecStart=-/usr/bin/Xvnc -inetd -query localhost -geometry 1920x1200 -once -SecurityTypes=None User=nobody StandardInput=socket
c) 在文件中/etc/gdm3/custom.conf放:
[xdmcp] Enable=true Port=177
d) 启动 VNC 套接字脚本并将其设置为在启动时自动启动。
sudo systemctl daemon-reload sudo systemctl enable xvnc.socket sudo systemctl start xvnc.socket
e) 检查。如果你
systemctl | grep vnc
你至少应该看到:
xvnc.socket loaded active listening XVNC Server on port 5900
在文件中/etc/gdm3/custom.conf取消注释该行:
WaylandEnable=false
解决了连接后立即黑屏的问题。
编辑:
在文件中/etc/gdm3/custom.conf在 [xdmcp] 部分添加:DisplaysPerHost=5
在哪里5这是允许的最大 VNC 连接数的示例。
它解决了更多连接的“读取(104:对等方重置连接)”问题。
在文件中/etc/tigervnc/vncserver-config-默认值找到参数 $session 并设置:
$session = ubuntu
(对于可能的会话值,请查看文件夹/usr/share/xsessions,使用不带 .desktop 后缀的名称)
解决了登录屏幕后黑屏的问题。
尝试从客户端连接到 <server-ip>:5900。