概述
众所周知,VNC(Virtual Network Computing)是一种远程桌面协议,允许用户通过网络远程访问和控制另一台计算机的桌面环境。基于CS架构,它由VNC Server(服务器端)和VNC Viewer(客户端)组成。
本期文章结合银河麒麟高级服务器操作系统V10总结分享VNC Server安装配置的最佳实践。
Tips:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64
VNC Server最佳实践
vnc-server软件获取及安装
系统ISO镜像默认存在vnc-server软件,因此,虚拟机通过挂载系统ISO镜像即可获取它。
如下图所示,通过cd 命令进入虚拟机挂载ISO镜像目录;
cd /run/media/root/Kylin-Server-10/Packages
然后,通过命令
cp tigervnc-server-1.10.1-8.p01.ky10.x86_64.rpm /mnt
把
tigervnc-server-1.10.1-8.p01.ky10.x86_64.rpm文件拷贝至/mnt目录。
如下图所示,安装它之前,通过命令rpm –qa | grep vnc查看虚拟机是否安装了vnc-server。
然后,通过命令rpm -ivh /mnt/tigervnc-server-1.10.1-8.p01.ky10.x86_64.rpm安装它。
vnc-server服务配置
如下图所示,通过命令
lslogins –u
查看虚拟机当前可登录的用户。
本例,基于Abc2024的用户配置vnc-server;
通过命令
cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver-Abc2024@.service
把/usr/lib/systemd/system/目录中的vncserver@.service模板文件复制到
/etc/systemd/system/vncserver-Abc2024@.service
如下图所示,通过命令
cat -n /etc/systemd/system/vncserver-Abc2024@.service | awk -n 'NR > 30'
查看vncserver-Abc2024@.service文件中大于30行的默认内容;
如下图所示,通过命令
nano /etc/systemd/system/vncserver-Abc2024@.service
修改该文件,把文件中的
Tips:关于nano命令,Ctrl+o是保存修改的文件,Ctrl+x是退出
启动vnc-server服务并设置自启动
如下图所示,通过命令
systemctl start vncserver-Abc2024@:1.service
尝试第一次启动vnc-server,出现了报错;
Tips:
数字1表示显示编号,对应的端口号是5901;同理,当显示编号是2时,对应的端口号则是5902。
通过命令
journalctl -xe
查看服务启动的详细报错信息,而报错的关键信息则是——getpassword error: 对设备不适当的 ioctl 操作
如下图所示,为了解决启动vnc-server服务发生地报错;
通过命令
su – Abc2024
切换至Abc2024用户,然后通过命令
vncpasswd
为该用户设置vncserver登录密码。
完成上述设置,再次启动vnc-server服务,该服务可正常启动。
如下图所示,通过命令
systemctl enable vncserver-Abc2024@:1.service
为vnc-server设置自启动。
配置系统防火墙规则
配置系统防火墙规则,从而允许客户端访问主机系统的vnc-server服务。
如下图所示,通过命令
firewall-cmd --list-all
查看系统的默认防火墙规则,该规则的services字段中无vnc-server服务。
方案1——添加系统防火墙规则
如下图所示,通过下列命令直接添加vnc-server服务至默认规则中并使能该规则。
firewall-cmd --permanent --add-service=vnc-server
firewall-cmd --reload
方案2【推荐】——添加系统防火墙规则
-如下图所示,基于富规则,通过下列命令,仅允许源地址是【192.168.1.10/32】的客户端访问主机的vnc-server服务。
firewall-cmd --permanent --remove-service=vnc-server
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.10/32" service name="vnc-server" accept'
firewall-cmd --reload
客户端访问测试
总结
以上分享,希望各位小伙伴有所收获,欢迎各位点赞、收藏和指正。
本文暂时没有评论,来添加一个吧(●'◡'●)