Linux服务器上安装配置VNC Server

  • 来源:新网
  • 更新日期:2018-04-18

摘要:前言项目需要在Linux上进行数据抽取的相关任务,使用的是Kettle这一ETL工具,但是服务器就一个主机,这里对应Kettle的job和trans等相关配置就无法进行,所以需要使用远程图形界面VNC来实现,下面就记录一下如何在Linux服务器下安装配置VNC server!安装配置安装X-Window首先,我们需要一个可用的桌面环境(X-Window),如果没有的话要先安装一个。如果有这一步骤可以

前言

项目需要在Linux上进行数据抽取的相关任务,使用的是Kettle这一ETL工具,但是服务器就一个主机,这里对应Kettle的job和trans等相关配置就无法进行,所以需要使用远程图形界面VNC来实现,下面就记录一下如何在Linux服务器下安装配置VNC server!

安装配置 安装X-Window

timg (7).jpg

首先,我们需要一个可用的桌面环境(X-Window),如果没有的话要先安装一个。如果有这一步骤可以跳过!
下面命令需要在root权限下执行:

yum groupinstall "X Window System"

这里提一下yum groupinstall和yum install的区别!
①yum install 它安装单个软件,以及这个软件的依赖关系
②yum groupinstall 它安装一个安装包,这个安装包包涵了很多单个软件,以及单个软件的依赖关系
具体可以参考这篇文章:yum install 与 yum groupinstall 的区别

之后执行命令:

yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts

最后设置默认启动图形界面:

unlink /etc/systemd/system/default.target ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

然后重启一下

reboot

以上参考:https://linux.cn/article-5335-1.html

另外如果需要中文,可以添加中文支持!

yum -y groupinstall chinese-support

在启动图形界面时可以选择支持中文。

安装VNC Server

同样的这里也需要root权限来运行!
安装很简单,只需执行命令:

yum install tigervnc-server

然后对VNC进行配置:
我们可以打开/lib/systemd/system/vncserver@.service,这个文件看一下,里边有个Quick HowTo
这里写图片描述
所以可以按照执行就好!
①复制模板配置文件

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

②修改配置,将里边的<USER>替换为用户名,我这里是mars:

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

如果要设置root用户:

ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i" PIDFile=/root/.vnc/%H%i.pid

③重启 systemd

systemctl daemon-reload

④设置密码
为mars设置登录密码,因为当前是root用户下,所以要切换到mars用户权限下进行设置。

su mars sudo vncpasswd

如果要为root设置,直接执行:

vncpasswd

⑤设置开机自启动

systemctl enable vncserver@:1.service

⑥开启服务

systemctl start vncserver@:1.service 可能遇到的问题

开启服务的时候,可能报错  
解决办法:
vi /lib/systemd/system/vncserver@:1.service将其中的Type参数
Type=forking 改为 Type=simple。

一般到这里,如果配置正确的话,是可以启动成功并且连接上的,如果还有问题,可以进行下边的尝试:
配置防火墙

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

再不行直接关闭:

systemctl stop firewalld.service//关闭 systemctl disable firewalld.service//禁用 使用VNC Viewer连接

VNC Viewer的下载这里就不再提了!
我们在连接的时候要使用类似:服务器的IP:端口号这样的形式来连接!
注意这里的”端口号”不是我们平常所说的端口号,这里的”端口号”是 VNC 连接数的多少,从1开始排序。
比如我们上边设置的vncserver@:1.service,我们在配置文件中设置的用户是mars,服务器的ip是192.168.164.132,那么我们连接的时候就用
192.168.164.132:1来连接,然后输入在配置vncserver@:1.service时设置的密码即可登录,登录进去就是mars这个用户身份!
当然我们也可以配置其他的用户来登录,比如设置vncserver@:2.service,同样的替换里边的<USER>即可!

那么说到实际的服务的端口号,VNC 服务本身使用的是5900端口。鉴于有不同的用户使用 VNC ,每个人的连接都会获得不同的端口。配置文件名里面的数字告诉 VNC 服务器把服务运行在5900的子端口上。在我们这个例子里,第一个 VNC 服务会运行在5901(5900 + 1)端口上,之后的依次增加,运行在5900 + x 号端口上。其中 x 是指之后用户的配置文件名 vncserver@:x.service 里面的 x。

2017/11/8更新
如果VNC窗口和外边windows不能进行复制粘贴!
在linux终端运行命令:

vncconfig -nowin& 其他相关

如果不设置开机自启动,需要每次手动启动服务:

systemctl start vncserver@:1.service 或者 vncserver :1

关闭服务:

systemctl stop vncserver@:1.service 或者 vncserver -kill :1