VNC Viewer请求超时解决方案 、灰屏解决方案(gnome或xfce4)

VNC Viewer 请求超时

问题

连接时提示:Timed out waiting for a response from the computer

在这里插入图片描述

在通过VNC Viewer连接虚拟桌面时,出现了连接超时的现象,一般出现这种问题,首先考虑一下是不是服务器IPVNC端口号 输入错误导致。
经过排查后,确认IP和端口号都是正确的,尝试各种方法后发现问题所在:

服务器可能打开了防火墙,通过服务器外部IP无法访问某些服务,导致连接超时。

解决方案

只需要在服务器中手动开启相应的端口号,VNC Viewer就能够访问了。

首先查看当前防火墙的规则:

#查看当前的规则和对应的编号,需要使用root权限
sudo iptables -L -n --line-number 

在这里插入图片描述
下面还有很多规则,图中的两个端口是与VNC相关的端口,一个是52号桌面的端口,一个是9号桌面的端口,之前的规则中只有对09的规则,图中的52是后来添加的。

由于之前的规则中并没有开放52号桌面的端口,所以手动进行开启。
首先要获取52号桌面的端口号,VNC的默认端口是从5901开始的,即1号桌面的端口为5901,相应的52号桌面的端口号为5952,如果不确定或为了稳妥,可以使用下面的命令查看个人用户下所有VNC的端口号。

netstat -lp|grep -i vnc

在这里插入图片描述
可以得到,52号桌面的端口号为:5952

然后,手动将开启52端口的规则,加入防火墙规则的命令如下:

sudo iptables -I INPUT -p tcp --dport 5952 -j ACCEPT

开启端口后VNC Viewer就可以访问端口52对应的VNC了。

gnome桌面灰屏

注:在gnome环境下的安装不一定能够成功,如果你的系统是16.04或18.04,直接向后翻,看xfce4的方案。
打开桌面后为灰屏状态,鼠标为 ‘X’ 状,无法进行任何操作。
在这里插入图片描述
如果你之前已经配置了xstartup文件,且运行正常,可以尝试一下命令,安装gnome需要的包,或对这些包进行更新。

sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal

在安装或更新后,如果还是灰屏,说明是xstartup的问题。

我们打开 amax-sys:52.log 文件,查看桌面的日志:

Xvnc Free Edition 4.1.1 - built Feb 25 2015 23:02:21
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.
Underlying X server release 40300000, The XFree86 Project, Inc


Mon Nov  8 14:25:29 2021
 vncext:      VNC extension running!
 vncext:      Listening for VNC connections on port 5952
 vncext:      created VNC server for screen 0
error opening security policy file /etc/X11/xserver/SecurityPolicy
Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/misc/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/75dpi/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/100dpi/, removing from list!
Could not init font path element /usr/share/fonts/X11/75dpi/, removing from list!
Could not init font path element /usr/share/fonts/X11/100dpi/, removing from list!
sh: /home/liushuo/.vnc/xstartup: Permission denied

从最后一句中,得到xstartup文件的权限不足,查看xstartup的权限:
在这里插入图片描述

可以看到xstartup只有读写权限,因此我们为xstartup添加执行权限。

chmod +x .vnc/xstartup

在这里插入图片描述
然后重新生成52号桌面

vncserver -kill :52
vncserver -geometry 1920x1080 :52

打开桌面后,菜单栏可以正常显示,程序和终端都可以正常运行,但是桌面和图标无法显示,且程序运行很慢。
在这里插入图片描述

查看日志文件:

Xvnc Free Edition 4.1.1 - built Feb 25 2015 23:02:21
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.
Underlying X server release 40300000, The XFree86 Project, Inc


Mon Nov  8 17:17:22 2021
 vncext:      VNC extension running!
 vncext:      Listening for VNC connections on port 5951
 vncext:      created VNC server for screen 0
error opening security policy file /etc/X11/xserver/SecurityPolicy
Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/misc/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/75dpi/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/100dpi/, removing from list!
Could not init font path element /usr/share/fonts/X11/75dpi/, removing from list!
Could not init font path element /usr/share/fonts/X11/100dpi/, removing from list!
/home/liushuo/.vnc/xstartup: line 16: gnome-settings-daemon: command not found
metacity-Message: 17:17:25.351: could not find XKB extension.

原因是没有 gnome-settings-daemon 命令,也就是gnome-settings-daemon没有安装成功。
我通过 apt-get 安装没有出现问题,但是通过 ps -A | grep gnome 查找不到gnome-settings-daemon的信息。
在这里插入图片描述
搞了半天不知道问题出在哪里,知道解决方案的大佬可以交流一下。
我的xstartup内容如下:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

# dbus-launch startxfce4
 
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
 
xsetroot -solid grey
vncconfig -iconic &
 
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

如果你的gnome-settings-daemon正常,修改xstartup的权限后,桌面应该就出来了。
如果你和我出现一样的问题,且Ubuntu系统为16.04或18.04,可以选择安装另一种桌面环境:Xfce4。

xfce4方案

安装方式也非常简单,此处默认系统已经安装了vncserver,如果没有安装,使用如下命令进行安装:

sudo apt-get install vnc4server

然后安装xfce

sudo apt-get install xfce4

可以使用如下命令,查看是否安装成功:

ps -A | grep xfce4

在这里插入图片描述
修改配置文件xstartup为:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

dbus-launch startxfce4

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
xrdb $HOME/.Xresources

然后重新生成52号桌面即可

vncserver -kill :52
vncserver -geometry 1920x1080 :52

在这里插入图片描述
附当前正常使用的VNC的log文件:


Xvnc Free Edition 4.1.1 - built Feb 25 2015 23:02:21
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.
Underlying X server release 40300000, The XFree86 Project, Inc


Mon Nov  8 19:08:30 2021
 vncext:      VNC extension running!
 vncext:      Listening for VNC connections on port 5951
 vncext:      created VNC server for screen 0
error opening security policy file /etc/X11/xserver/SecurityPolicy
Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/misc/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/75dpi/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/100dpi/, removing from list!
Could not init font path element /usr/share/fonts/X11/75dpi/, removing from list!
Could not init font path element /usr/share/fonts/X11/100dpi/, removing from list!
/usr/bin/startxfce4: X server already running on display :51
gpg-agent[42352]: WARNING: "--write-env-file" is an obsolete option - it has no effect
gpg-agent: a gpg-agent is already running - not starting a new one

(xfce4-session:42337): xfce4-session-WARNING **: 19:08:34.025: gpg-agent returned no PID in the variables

(xfce4-session:42337): xfce4-session-WARNING **: 19:08:34.026: xfsm_manager_load_session: Something wrong with /home/liushuo/.cache/sessions/xfce4-session-amax-sys:51, Does it exist? Permissions issue?
vmware-user: could not open /proc/fs/vmblock/dev

(xfwm4:42355): xfwm4-WARNING **: 19:08:34.063: The display does not support the XRender extension.

(xfwm4:42355): xfwm4-WARNING **: 19:08:34.063: The display does not support the XComposite extension.

(xfwm4:42355): xfwm4-WARNING **: 19:08:34.063: The display does not support the XDamage extension.

(xfwm4:42355): xfwm4-WARNING **: 19:08:34.064: The display does not support the XFixes extension.

(xfwm4:42355): xfwm4-WARNING **: 19:08:34.064: Compositing manager disabled.

(xfsettingsd:42371): xfsettingsd-CRITICAL **: 19:08:34.076: RANDR extension is too old, version 1.1. Display settings won't be applied.
Xlib:  extension "XInputExtension" missing on display ":51.0".

(xfsettingsd:42371): xfsettingsd-CRITICAL **: 19:08:34.076: XI is not present.

(xfsettingsd:42371): xfsettingsd-CRITICAL **: 19:08:34.076: Failed to initialize the Xkb extension.

(xfsettingsd:42371): xfsettingsd-CRITICAL **: 19:08:34.076: Failed to initialize the Accessibility extension.

** (update-notifier:42372): WARNING **: 19:08:34.100: already running?
xfwm4-Message: 19:08:34.112: Unsupported keyboard modifier '<Super>Tab'

(polkit-gnome-authentication-agent-1:42374): GLib-CRITICAL **: 19:08:34.115: g_variant_new_string: assertion 'string != NULL' failed

(polkit-gnome-authentication-agent-1:42374): polkit-gnome-1-WARNING **: 19:08:34.116: Failed to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files

(xfwm4:42355): xfwm4-WARNING **: 19:08:34.117: Cannot find visual format on screen 0
xfwm4-Message: 19:08:34.160: Unsupported keyboard modifier '<Super>Tab'

(nm-applet:42367): nm-applet-WARNING **: 19:08:34.220: GDBus.Error:org.freedesktop.NetworkManager.AgentManager.PermissionDenied: An agent with this ID is already registered for this user.

(nm-applet:42367): Gtk-WARNING **: 19:08:34.255: Can't set a parent on widget which has a parent
Failure: Module initialization failed

** (xfdesktop:42363): WARNING **: 19:08:34.472: Failed to set the background '/usr/share/backgrounds/xfce/xfce-teal.jpg': GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No such interface 'org.freedesktop.DisplayManager.AccountsService'

仍有一些警告,但桌面已经可以正常使用。

参考

端口:
https://www.jianshu.com/p/b3068288d80d
https://www.cnblogs.com/ding2016/p/8031926.html

vnc错误排查:
https://blog.csdn.net/CH_sir/article/details/107930881
https://junchu.blog.csdn.net/article/details/103974974
https://blog.csdn.net/qq695165856/article/details/105677776

灰屏:
https://www.freesion.com/article/85721281890/

xfce4:
https://www.cnblogs.com/kerrycode/p/4790021.html
https://blog.csdn.net/weixin_34174422/article/details/93689750
https://www.linuxidc.com/Linux/2018-08/153435.htm

  • 27
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
软件简介: VNC(Virtual Network Computing,虚拟网络计算)最早是一套由英国剑桥大学ATT实验室在2002年开发的轻量型的远程控制计算机软件,其采用了 GPL 授权条款,任何人都可免费取得该软件。VNC软件主要由两个部分组成:VNC serverVNC viewer。用户需先将VNC server安装在被控端的计算机上后,才能在主控端执行 VNC viewer 控制被控端。 VNC serverVNC viewer 支持多种操作系统,如 windows,Linux,MacOS 及 Unix 系列(Unix,Solaris等),因此可将 VNC serverVNC viewer 分别安装在不同的操作系统中进行控制。RealVNC 的优越性还在于如果操作系统的主控端计算机没有安装 VNC viewer,也可以通过一般的网络浏览器(如 IE 等)来控制被控端(需要 Java 虚拟机的支持)。 整个 VNC 一般运行的工作流程如下: (1) VNC 客户端通过浏览器或 VNC Viewer 连接至 VNC Server。 (2) VNC Server 传送一对话窗口至客户端,要求输入连接密码(可能为空),以及存取的 VNC Server 显示装置。 (3) 在客户端输入连接密码后,VNC Server 验证客户端是否具有存取权限。 (4) 若是客户端通过 VNC Server 的验证,客户端即要求 VNC Server 显示桌面环境。 (5) 被控端将画面显示控制权交由 VNC Server 负责。 (6) VNC Server 将把被控端的桌面环境利用 VNC 通信协议送至客户端,并且允许客户端控制 VNC Server 的桌面环境及输入装置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KyrieLiu52

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值