VNC是个比较不错的远程工具,无论基于Windows平台或Linux平台,由于最近在学习Centos的相关知识,所以准备在Centos 7上搭建一个VNC server便于我从客户端机器通过VNC viewer来远程连接操作。

如果你没有安装桌面环境(X Windows),可以使用以下命令来安装,大概花费几分钟时间来安装此packages.

[root@localhost ~]# yum check-update
[root@localhost ~]# yum groupinstall "X Windows System"
[root@localhost ~]# yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
[root@localhost ~]# unlink /etc/systemd/system/default.target
[root@localhost ~]# ln
-sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
[root@localhost ~]# reboot

重启后就可以进入到Centos 7的桌面环境了。

Step 1 输入以下命令安装VNC 包

[root@localhost ~]# yum install tigervnc-server -y

Step 2 在/etc/systemd/system/目录创建一个文件vncserver@:1.service,并复制实例配置文件/lib/systemd/system/vncserver@.service至其中

[root@localhost ~]# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

Step 3 打开并编辑/etc/systemd/system/vncserver@:1.service文件并用你自己的用户名取代其中的user项

[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

注意如上root,我所使用的是root账号登陆,所以将<user>更改为root

Step 4 重启systemd

[root@localhost system]# systemctl daemon-reload

Step 5 为用户创建VNC密码

[root@localhost system]# vncpasswd

此处我创建密码为123456

Step 6 启用并启动服务

[root@localhost system]# systemctl enable vncserver@:1.service
ln -s '/etc/systemd/system/vncserver@:1.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:1.service'
[root@localhost system]# systemctl start vncserver@:1.service

Step 7 允许VNC服务通过防火墙

[root@localhost ~]# firewall-cmd --permanent --add-service vnc-server
[root@localhost ~]# systemctl restart firewalld.service

现在我可以通过使用运行在Win10 上的VNC viewer客户端来远程查看Centos 7的图形界面

wKioL1X42YizNjAnAADImh1gEiQ473.jpg

wKiom1X419bTRQceAAdW9NG-iVo438.jpg可以看到Centos 7的桌面环境了

若需停止VNC服务,输入如下指令。

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

禁用VNC服务从系统启动(永久)

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

停止防火墙服务

[root@localhost ~]# systemctl stop firewall.service

Have a nice day!