VNC

一、VNC

客户给你提供了linux系统,这个linux系统呢不是最小化安装的,是桌面版的,可以直接登录访问到linux系统环境的桌面。但是呢,可能客户的linux服务器是放到了机房,机房不会让你进去的,所以你没法去Linux服务器的旁边,操作linux的桌面。那怎么办呢?提供了一种虚拟网络控制台的工具VNC,可以本地windows上远程连接linux平台,看到Linux的桌面!下面我们就来介绍一下该工具的使用方法。

VNC介绍

VNC (Virtual Network Console)是虚拟网络控制台的缩写。 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和vncconnect。大多数情况下用户只需要其中的两个命令:vncserver和 vncviewer。
VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer);另外一部分是服务器端的应用程序(vncserver)。
所以WINDOWS端安装VNCVIEWER,LINUX端安装VNCSERVER!

1. windows端安装vncviewer

vncviewer下载地址

2. linux端安装vncserver

2.1 离线安装

vncserver下载地址

解压后安装命令为:
 # rpm -ivUh *.rpm --force --nodeps

2.2 在线安装

centos7下一般使用tigervnc。 root下执行命令:
 # yum install -y tigervnc-server

2.3 配置vncserver

 #cd /lib/systemd/system
 #cp vncserver@.service vncserver@:1.service
 #vim vncserver@:1.service
 
[Unit] 
Description=Remote desktop service (VNC) 
After=syslog.target network.target

[Service] 
Type=forking 
# Clean any existing files in /tmp/.X11-unix environment 
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i "
PIDFile=/root/.vnc/%H%i.pid 
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install] 
WantedBy=multi-user.target

如果是非root用户,例如用户admin,PIDFile处应该是:

 ExecStart=/sbin/runuser -l admin -c “/usr/bin/vncserver %i ” 
 PIDFile=/home/admin/.vnc/%H%i.pid

3. 启动vncserver

 # systemctl daemon-reload 
 # systemctl enable vncserver@:1.service   #设置vnc开机启动
 # vncpasswd     #设置vnc连接密码
 # systemctl start vncserver@:1.service
 # systemctl status vncserver@:1.service
 # systemctl restart vncserver@:1.service

4. vncviewer连接

windows端安装的vncviewer,进入页面在右上角先进性注册。
通过linux的服务器IP加上:1,进行连接桌面,例如:
192.168.208.11:1

这里写图片描述

二、多个VNCServer

在上面博客中介绍了一台Linux服务器上开启一个VNCServer,然后通过Windows端的VNCviewer去连接该Linux,最后可以在Windiwos系统中,远程看到Linux的系统界面。但是现实情况可能需要不止一个用户桌面环境,比如我们在远程安装oracle时还需要一个oracle用户的桌面环境,而之前只配置了root用户,下面描述配置多用户的VNCserver。原理很类似,只需要配置多个vncserver@:n.service。

操作步骤

1. 复制vncserver@.service

假设我们的用户已经建立好,这里以admin为例。首先以root用户登录,在目录下,和前述一样,拷贝配置文件,不过这里不是:1,而是:2,数字可以自己设置,一般用递增来描述。

 #cd /lib/systemd/system
 #cp vncserver@.service vncserver@:2.service
 #vi vncserver@:2.service

修改配置

[Unit] 
Description=Remote desktop service (VNC) 
After=syslog.target network.target

[Service] 
Type=forking 
# Clean any existing files in /tmp/.X11-unix environment 
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l admin -c "/usr/bin/vncserver %i " 
PIDFile=/home/admin/.vnc/%H%i.pid 
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install] 
WantedBy=multi-user.target

保存退出。然后按照配置文件提示,执行

#systemctl daemon-reload
#systemctl enable vncserver@:2.service

2. 修改vnc登录验证密码

执行完毕后,切换到admin账户,执行

$vncserver :2

会要求输入验证密码

You will require a password to access your desktops.

Password: 
Verify: 
xauth: file /home/admin/.Xauthority does not exist

New ‘localhost.localdomain:2 (admin)’ desktop is localhost.localdomain:2

Creating default startup script /home/admin/.vnc/xstartup 
Starting applications specified in /home/admin/.vnc/xstartup 
Log file is /home/admin/.vnc/localhost.localdomain:2.log

3. 启动服务

之后切换回root,执行

 # systemctl deamon-reload
 # systemctl start vncserver@:2.service

这时候提示启动不成功,提示已经有一个vncserver as :2 running了,这时候我们先要杀掉这个进程,执行命令

 # ps -ef | grep vnc

查看vncserver :2的进程id,如pid为1311,则执行

 # kill -9 1311
 # systemctl start vncserver@:2.service

还是报错,查看日志

 # journalctl -xn

提示需要删除/tmp/.X2-lock ,执行

 # rm /tmp/.X2-lock
 # systemctl start vncserver@:2.service

还是报错,查看日志,提示需要删除/tmp/.X11-unix/X2 ,执行

 # rm /tmp/.X11-unix/X2

再次启动

 # systemctl start vncserver@:2.service
 # systemctl status vncserver@:2.service
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 点我我会动 设计师:上身试试 返回首页