VNCServer[]教程

摘要

VNC属于一种显示系统,也就是说他能将完整的窗口界面通过网络,传输到另一台计算机的屏幕上.
Windows服务器中包含的”Terminal Server”、Symantec公司开发的收费软件PCAnywhere、近期流行的Teamviewer、国内的协通XT800、快递通KDT都是属于这种原理的设计,同时这些软件又在VNC的原理基础上做了各自相应改进,提高了易用性、连通率和可穿透内网(Teamviewer、协通XT800、 KDT).

同样可能远程连入UNIX、Linux进行图形化操作的还有流行的Xmanager,VNC与之相比——两者工作原理不一样。
VNC是远程连入操作系统,所有操作在UNIX、Linux主机服务端进行,即使操作过程中”本地电脑与操作主机网络断开”,也不影响操作的顺利进行;

Xmanager是通过端口将主机服务器的UI界面引导到本地电脑进行展现,如操作过程出现”本地电脑与操作主机网络断开”,操作将中断失败!如果操作都进行的工作任务非常重要,不能中断,如ORACLE RAC实施,结果是灾难性的!
更重要的是,VNC是免费的、开源的,Xmanager你一定是用的破解注册版的。

VNC组成部分

VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。
VNC的基本 运行原理和一些Windows下的远程控制软件很相象。VNC的服务器端应用程序在UNIX和Linux操作系统中适应性很强,图形用户界面十分友好。在任何安装了客户端的应用程序(vncviewer)的Linux平台的计算机都能十分方便的和安装了服务器 端的应用程序(vncserver)的计算机相互连接。另外,服务器端 (vncserver)还内建了Java Web接口,这样用户通过服务器端对其他计算机的操作就能通过Netscape显示出来了,这样的操作过程和显示方式比较直观方便。

命令描述

内置了 vncconfig vncfinger.sh vncpasswd vncserver vncviewer Xvnc这5个命令。
其中最常用的命令是 vncserver 。

  1. vncserver 此服务程序必须在主(或遥控)计算机上运行。你只能作为使用者使用此项服务。

vncviewer 本地应用程序,用于远程接入运行vncserver的计算机并显示其环境。

你需要知道远程计算机的IP地址和vncserver设定的密码。

vncpasswd vncserver的密码设置工具。vncserver服务程序没有设置密码将不能运行(好习惯)。如果你没有设置,运行vncserver时它会提示你输入一个密码。
vncconnect 告诉vncserver连接到远程一个运行vncviewer的计算机的IP和端口号。这样我就可以避免给其他人一个接入的密码。
Xvnc 一个vnc”主控”程序,一般来说不需要直接运行。(vncserver和vncviewer实际上是Xvnc的脚本)

查找所有可用的选项,运行:

Xvnc –help

出于安全的考虑,一般不建议直接以超级用户帐号运行vncserver程序。如果你需要超级用户的环境,请以一般用户登录后再使用su命令登录到超级用户帐号。

客服端推荐

  1. MobaXterm (非常推荐)
  2. tightVNC (推荐)

开启VNCServer 服务

vncserver -geometry 1920x1080 :65

需要输入用户名和密码 建议和linux服务电脑用户一样

然后在VNCVIEWER客服端上就可以登陆,凭借端口号和密码登录。

vncrun maestro

进入全屏 【tight VNC VIEWER】

ctrl+alt+shift+F

退出全屏 【tight VNC VIEWER】

ctrl+alt+shift+f

VNC 配置文件

cd ~/.vnc

查看 开放的端口

[XXX@hostname .vnc]$ vncserver -list

TigerVNC server sessions:
X DISPLAY # PROCESS ID
:66 22712
:65 46755

重启VNC服务

到putty 中

vncserver -kill :65
vncserver -geometry 1920x1080 :65
vncserver -geometry 1920x1080 :16

一般来说出问题后,还原配置,清理临时文件,再重启服务器或重启vncserver服务即可解决

重启vncserver 就可以了,大约需要等待5到10分钟。

在服务器的终端输入 vncconfig 就可以了。

tight vncviewer 连接服务器,然后再终端中输入vncconfig, 这样就可以和主机共享剪切板了。

vncconfig -nowin &

我喜欢用打开一个终端,然后vncconfig保持窗口打开状态。

黑屏解决办法

首先要确保~/.vnc 目录下面会有pid 和log 文件,

如果没有这2个文件就删除/tmp下面相应的文件,

重新开启vncserver服务

排错的话,一定要注意
一定要注意查看log 文件,log 文件中会告诉你出现了什么问题。
如果没有告诉你问题,只需要等待就可以了。

Fri Feb 19 10:10:37 2021
VNCSConnST: Server default pixel format depth 24 (32bpp) little-endian rgb888

黑屏原因之一
大概就是文件目录权限的问题,导致无法写入文件。
~/.config 文件夹
~/.cache 文件夹

ll .cache -d

[‎2019/‎10/‎9 9:38] Chen Zhaoqiang0101:
chown qiuli .config -R
chgrp qiuli .config -R
[‎2019/‎10/‎9 9:39] Chen Zhaoqiang0101:
chown qiuli:qiuli .config -R

黑屏

如果log文件没有报错信息,鼠标双击黑屏试试看

保持黑屏30分钟以上,然后双击黑屏,
如果还没有反应,先尝试重启 vncserver,
如果还没有反应,则需要重启系统。

service vncserver restart

sudo /bin/systemctl restart vncserver.service

vncserver -geometry 1920x1080 :65

[xxx@hostname .vnc]$ ps -aux |grep vnc|grep username

ps -aux |grep vnc|grep username
cd .vnc
rm * -fr

(imsettings-check:25069): GLib-GIO-CRITICAL **: g_dbus_proxy_call_sync_internal: assertion ‘G_IS_DBUS_PROXY (proxy)’ failed
gnome-session-is-accelerated: llvmpipe detected.

vncserver -geometry 1920x1080 :65
vncserver -kill :65
vncserver -geometry 1920x1080 :65

which python 必须是系统内置的python .

由于 连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

配置
/etc/sysconfig/vncservers

netstat -an |grep 5801

netstat -an |grep 5965

telnet 10.111.9.147 5965

重启系统后,成功解决黑屏问题

黑屏万能方法总结

  1. kill 所有的端口服务
  2. 删除 ./vnc 文件夹下面所有的文件
  3. 保证 python 为系统自带的python
  4. 启动端口服务
  5. 打开vnc客服端 进行连接
  6. 重启系统,重复上述步骤

CAN’T FIND FILE PID 解决办法

###
在使用VNC之后想要关闭自己的VNC端口,结果遇到了如下图的问题:
这里写图片描述
解决办法:

  1. 在终端上执行命令ps aux | grep xxx(xxx是你在服务器上的账户,本例中就是chenxiayu)
  2. 找到列出的所有进程中,一个叫Xvnc的进程,大概是这个样子的:
    这里写图片描述
  3. 看它的进程号是多少,这里是28592
  4. 然后用 kill (进程号) 把进程杀掉即可。
    注意,如果你找不到Xvnc这个进程,那应该是本来就不存在,不需要kill,应该可以直接重开vnc端口。

补充:出现这个问题的原因可能是VNC的服务端崩溃,导致~/.vnc目录下的pid文件丢失,然而在/tmp目录下的Xlock文件依然存在,导致系统以为仍有一个vncserver在你的端口上运行。用以下命令可以看看/tmp目录下的相关临时文件。
这里写图片描述
因此另一个办法就是删除相应端口的临时文件(这里以端口21为例),然后就可以重开vnc端口了:

rm -rf /tmp/.X11-unix/X21

有时候只需要上面这句就搞定了(我应该没记错的),但是最近发现还需要再把.X21-lock文件删掉才行:

rm -rf /tmp/.X21-lock

cd ./vnc
把原来的配置文件都删除掉
然后开始链接

参考

  1. https://www.iteye.com/blog/cxh61207-1050210
  2. https://jingyan.baidu.com/article/86112f1396100227379787a3.html
  3. http://lazybios.com/2013/01/vnc-in-fedora-14/
  4. http://xstarcd.github.io/wiki/Linux/vnc-server.html
  5. https://www.cnblogs.com/kevingrace/p/5821450.html
  6. https://blog.csdn.net/lifuxin1125/article/details/7744027
  7. https://blog.csdn.net/sunshine_drizzle/article/details/50933748