Windows 下使用VNC连接 CentOS7 桌面

Windows 下使用VNC远程连接 CentOS 7 桌面

出于使用方便的考虑,有时候我们需要远程连接Linux桌面环境,尤其是我这种Linux菜鸟。Windows下连接Linux命令行界面可以使用SSH,而连接桌面环境则需要使用VNC( Virtual Network Computing)。

以下介绍来自百度百科 VNC


VNC ( Virtual Network Console ) 是虚拟网络控制台的缩写。它是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIXLinux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和WindowsMAC 中的任何远程控制软件媲美。 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和vncconnect。大多数情况下用户只需要其中的两个命令:vncservervncviewer

VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。VNC的服务器端应用程序在UNIX和Linux操作系统中适应性很强,图形用户界面十分友好,看上去和Windows下的软件界面也很类似。在任何安装了客户端的应用程序(vncviewer)的Linux平台的计算机都能十分方便地和安装了服务器端的应用程序(vncserver)的计算机相互连接。

同样可能远程连入UNIX、Linux进行图形化操作的还有流行的Xmanager,VNC与之相比——两者工作原理不一样,前者(VNC)是远程连入操作系统,所有操作在UNIX、Linux主机服务端进行,即使操作过程中“本地电脑与操作主机网络断开”,也不影响操作的顺利进行;而后者(Xmanager)是通过端口将主机服务器的UI界面引导到本地电脑进行展现,如操作过程出现“本地电脑与操作主机网络断开”,操作将中断失败!如果操作中进行的工作任务非常重要,不能中断,如ORACLE RAC实施,结果是灾难性的!更重要的是,VNC是免费的、开源的,Xmanager需要注册的。


本文就简单介绍使用TigerVNC 实现 Windows 10 远程连接 CentOS 7 桌面环境。

Linux端(VNC Server端)

安装CentOS时没有安装 X-Windowss 桌面环境的话,需要先安装才能用。这里假设已经安装了桌面环境

以下内容参照 Centos 7 安装VNC步骤

rpm -q tigervnc tigervnc-server # 查看服务器是否装了VNC
# 若没有安装
package tigervnc is not installed
package tigervnc-server is not installed

1. 安装tigervnc-server

yum install tigervnc-server -y

2. 修改配置信息

/etc/systemd/system/下建立文件夹vncserver@:1.serviceexample config 文件从/lib/systemd/system/vncserver@.service复制到里面

cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

Virtual Network Computing (简体中文)))

VNC服务运行的默认端口是 :1 ,它代表服务运行的TCP端口(5900+n = 端口号)。

在物理内存允许的条件下,Linux系统可以拥有任意数量的VNC服务——它们互相并行。

打开配置文件/etc/systemd/system/vncserver@:1.service替换掉默认用户名<USER>中的USER 为你的用户名,如root

ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid

3. 重加载 systemd,为VNC设密码

systemctl daemon-reload
vncpassw # 设置密码

4. 修改防火墙

若为iptables,则参考上面引用的博客文章

firewall-cmd --permanent --add-service vnc-server
systemctl restart firewalld.service

如果报:

Centos7 VNC报vncserver@:1.service:control process exited,code-exited status=98

修改配置文件中的Type=forking

type=simple

5. 设默认启动并开启VNC

systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service

6. 可能出现的问题

# systemctl start vncserver@:1.service
Job for vncserver@:1.service failed. See 'systemctl status vncserver@:1.service' and 'journalctl -xn' for details.

https://www.centos.org/forums/viewtopic.php?t=47713

rm -rf /tmp/.X11-unix/

然后重新start。不管用的话,

vncserver -kill :1 # 杀死进程。不过可能根本没有这一进程
sudo su - # 或 su root 切换到root用户
[root@localhost ~]# systemctl start vncserver@:1.service
systemctl status vncserver@:1.service -l # 查看状态

Windows端(VNC Viewer端)

1. 下载VNC Viewer

VNC有 RealVNC 等多种,这里使用与服务端系统的 TigerVNC 。去 https://bintray.com/tigervnc/stable/tigervnc/1.7.0 下载exe文件, 然后安装即可。

2. 连接CentOS7

启动VNC Viewer ,输入ip和连接的端口号

然后按照提示输入vnc密码,即可连接了

可能存在的问题

在上面使用了root用户启动服务

[root@localhost ~]# systemctl start vncserver@:1.service

如果exit 退出root用户,回到普通用户,可能就连接不上了,报read. Connection reset by peer之类的错误。而且,我们在普通用户下查看状态,发现是failed

[houzw@localhost ~]$ systemctl status vncserver@1.service
● vncserver@1.service - Remote desktop service (VNC)
Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 二 2016-12-06 20:35:40 CST; 3min 32s ago
Process: 16295 ExecStart=/usr/sbin/runuser -l <USER> -c /usr/bin/vncserver %i (code=exited, status=1/FAILURE)
Process: 16292 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

这时候我们需要

[houzw@localhost ~]$ vncserver
New 'localhost.localdomain:3 (houzw)' desktop is localhost.localdomain:3
Starting applications specified in /home/houzw/.vnc/xstartup
Log file is /home/houzw/.vnc/localhost.localdomain:3.log
[houzw@localhost ~]$ exit

然后连接就可以了

文章目录
  1. 1. Windows 下使用VNC远程连接 CentOS 7 桌面
    1. 1.1. Linux端(VNC Server端)
      1. 1.1.0.1. 1. 安装tigervnc-server
      2. 1.1.0.2. 2. 修改配置信息
      3. 1.1.0.3. 3. 重加载 systemd,为VNC设密码
      4. 1.1.0.4. 4. 修改防火墙
      5. 1.1.0.5. 5. 设默认启动并开启VNC
      6. 1.1.0.6. 6. 可能出现的问题
  2. 1.2. Windows端(VNC Viewer端)
    1. 1.2.0.1. 1. 下载VNC Viewer
    2. 1.2.0.2. 2. 连接CentOS7
    3. 1.2.0.3. 可能存在的问题
|