序言
项目须要在Linux上进行数据抽取的相关任务linux服务器环境安装,使用的是Kettle这一ETL工具,而且服务器就一个主机,这儿对应Kettle的job和trans等相关配置就难以进行,所以须要使用远程图形界面VNC来实现,下边就记录一下怎样在Linux服务器下安装配置VNCserver!
安装配置安装X-Window
首先,我们须要一个可用的桌面环境(X-Window),假如没有的话要先安装一个。假如有这一步骤可以跳过!
下边命令须要在root权限下执行:
yum groupinstall "X Window System"
这儿提一下yumgroupinstall和yuminstall的区别!
①yuminstall它安装单个软件,以及这个软件的依赖关系
②yumgroupinstall它安装一个安装包,这个安装鞋子涵了好多单个软件,以及单个软件的依赖关系。
具体可以参考这篇文章:yuminstall与yumgroupinstall的区别
然后执行命令:
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
以上参考:
另外假如须要英文,可以添加英文支持!
yum -y groupinstall chinese-support
在启动图形界面时可以选择支持英文。
安装VNCServer
同样的这儿也须要root权限来运行!
安装很简单,只需执行命令:
yum install tigervnc-server
之后对VNC进行配置:
我们可以打开/lib/systemd/system/vncserver@.service,这个文件看一下linux运维最佳实践,里面有个QuickHowTo
所以可以根据执行就好!
①复制模板配置文件
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service
②修改配置,将里面的替换为用户名,我这儿是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//禁用
使用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,同样的替换里面的即可!
这么说到实际的服务的端标语linux服务器维护,VNC服务本身使用的是5900端口。鉴于有不同的用户使用VNC,每位人的联接就会获得不同的端口。配置文件名上面的数字告诉VNC服务器把服务运行在5900的子端口上。在我们这个反例里linux服务器环境安装,第一个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