一、VNC简介
VNC (Virtual Network Console)是虚拟网络控制台的缩写。它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。 在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下用户只需要其中的两个命令:vncserver 和 vncviewer。
二、vncserver的用途
为使CentOS 7上的KVM可以进行图形化远程访问,需在CentOS 7服务器上安装vncserver及相关组件。
三、需要注意的前提条件
1、确保关闭CentOS所有的防火墙
命令:
setenforce 0
或者执行:
vim /etc/sysconfig/selinux
将SELINUX=disabled,SELINUXTYPE=targeted,并重启操作系统
四、解决方案
1、安装依赖软件包
命令:
yum upgrade && yum groupinstall "GNOME" "X Window System" "Desktop" && yum install -y tigervnc-server tigervnc vnc vnc-server
2、复制vncserver配置文件
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
3、用vim打开复制后的vncserver配置文件
vim /etc/systemd/system/vncserver@:1.service
4、修改复制后的vncserver配置文件
如果当前用户是root,则将文件中的<USER>替换成root
如果当前用户不是root,则将文件中的<USER>替换成[loginuser]
5、为vncserver设置密码
命令:
vncpasswd
连续输入Password和Verify,当出现“Would you like to enter a view-only password(y/n)?”时,选择n,然后编辑qemu配置文件
命令:
vim /etc/libvirt/qemu.conf
修改vnc_password="[password]",vnc_listen="0.0.0.0",后保存
6、重加载systemd
命令:
systemctl daemon-reload
7、启动vncserver
命令:
systemctl enable vncserver@:1.service && systemctl start vncserver@:1.service
8、如开启CentOS防火墙,则需在防火墙中添加下面的规则
命令:
firewall-cmd --permanent --add-service vnc-server
systemctl restart firewalld.service
9、如添加了iptables,则需要在/etc/sysconfig/iptables中添加下面的规则
规则:-A INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5903 -j ACCEPT