{{ v.name }}
{{ v.cls }}类
{{ v.price }} ¥{{ v.price }}
前言项目需要在linux上进行数据抽取的相关任务,使用的是kettle这一etl工具,但是服务器就一个主机,这里对应kettle的job和trans等相关配置就无法进行,所以需要使用远程图形界面vnc来实现,下面就记录一下如何在linux服务器下安装配置vncserver!
安装配置安装x-window
首先,我们需要一个可用的桌面环境(x-window),如果没有的话要先安装一个。如果有这一步骤可以跳过!下面命令需要在root权限下执行:
yumgroupinstall"xwindowsystem"
这里提一下yumgroupinstall和yuminstall的区别!①yuminstall它安装单个软件,以及这个软件的依赖关系②yumgroupinstall它安装一个安装包,这个安装包包涵了很多单个软件,以及单个软件的依赖关系。具体可以参考这篇文章:yuminstall与yumgroupinstall的区别
之后执行命令:
yuminstallgnome-classic-sessiongnome-terminalnautilus-open-terminalcontrol-centerliberation-mono-fonts
最后设置默认启动图形界面:
unlink/etc/systemd/system/default.targetln-sf/lib/systemd/system/graphical.target/etc/systemd/system/default.target
然后重启一下
reboot
以上参考:https://linux.cn/article-5335-1.html
另外如果需要中文,可以添加中文支持!
yum-ygroupinstallchinese-support
在启动图形界面时可以选择支持中文。
同样的这里也需要root权限来运行!安装很简单,只需执行命令:
yuminstalltigervnc-server
然后对vnc进行配置:我们可以打开/lib/systemd/system/vncserver@.service,这个文件看一下,里边有个quickhowto所以可以按照执行就好!①复制模板配置文件
cp/lib/systemd/system/vncserver@.service/lib/systemd/system/vncserver@:1.service
②修改配置,将里边的
execstart=/sbin/runuser-lmars-c"/usr/bin/vncserver%i"pidfile=/home/mars/.vnc/%h%i.pid
如果要设置root用户:
execstart=/sbin/runuser-lroot-c"/usr/bin/vncserver%i"pidfile=/root/.vnc/%h%i.pid
③重启systemd
systemctldaemon-reload
④设置密码为mars设置登录密码,因为当前是root用户下,所以要切换到mars用户权限下进行设置。
sumarssudovncpasswd
如果要为root设置,直接执行:
vncpasswd
⑤设置开机自启动
systemctlenablevncserver@:1.service
⑥开启服务
systemctlstartvncserver@:1.service可能遇到的问题
开启服务的时候,可能报错解决办法:vi/lib/systemd/system/vncserver@:1.service将其中的type参数type=forking改为type=simple。
一般到这里,如果配置正确的话,是可以启动成功并且连接上的,如果还有问题,可以进行下边的尝试:配置防火墙
sudofirewall-cmd--permanent--add-servicevnc-serversudosystemctlrestartfirewalld.service
再不行直接关闭:
systemctlstopfirewalld.service//关闭systemctldisablefirewalld.service//禁用使用vncviewer连接
vncviewer的下载这里就不再提了!我们在连接的时候要使用类似:服务器的ip:端口号这样的形式来连接!注意这里的”端口号”不是我们平常所说的端口号,这里的”端口号”是vnc连接数的多少,从1开始排序。比如我们上边设置的vncserver@:1.service,我们在配置文件中设置的用户是mars,服务器的ip是192.168.164.132,那么我们连接的时候就用192.168.164.132:1来连接,然后输入在配置vncserver@:1.service时设置的密码即可登录,登录进去就是mars这个用户身份!当然我们也可以配置其他的用户来登录,比如设置vncserver@:2.service,同样的替换里边的
那么说到实际的服务的端口号,vnc服务本身使用的是5900端口。鉴于有不同的用户使用vnc,每个人的连接都会获得不同的端口。配置文件名里面的数字告诉vnc服务器把服务运行在5900的子端口上。在我们这个例子里,第一个vnc服务会运行在5901(5900+1)端口上,之后的依次增加,运行在5900+x号端口上。其中x是指之后用户的配置文件名vncserver@:x.service里面的x。
2017/11/8更新如果vnc窗口和外边windows不能进行复制粘贴!在linux终端运行命令:
vncconfig-nowin&其他相关
如果不设置开机自启动,需要每次手动启动服务:
systemctlstartvncserver@:1.service或者vncserver:1
关闭服务:
systemctlstopvncserver@:1.service或者vncserver-kill:1