参考博客:
VNC配置:https://blog.youkuaiyun.com/nahancy/article/details/86316971
防火墙操作:https://www.cnblogs.com/moxiaoan/p/5683743.html
写在前面:本配置教程参考了多篇教程,第一次配置经验不足,导致出现了许多问题,配置完成后回头发现其实并不复杂,关键是要确保每步操作正确,再进行下一步,否则到最后vnc无法连接。
这次配置开始是用ubuntu的命令行去连接ssh,后来使用xshell连接的,所以命令行风格不太一样,不过操作命令无影响。
此外,后来补充了多用户连接CVN的配置过程,博客链接:
https://blog.youkuaiyun.com/qq_34039018/article/details/90142523
要注意的以下几点:
(1)该配置过程分为3步,第1步,ssh连接服务器 第2步,安装图形界面 第3步,配置vncserver
(2)ssh连接:确保正确连接即可。
(3)图形界面:一定要保证图形界面安装完成,出现Transaction check error报错要解决掉再进行下一步,我是通过命令:sudo yum upgrade -y进行解决的。另外,建议把图形界面设置成默认桌面,因为vnc连接要求服务器必须使用的是图形界面,或者需要用vnc的时候再启动图形界面也行。
(4)编辑vnc配置文件:/etc/systemd/system/vncserver@\:1.service,要注意<USER>有两个,都要修改,我当时只修改了一个,结果导致vncserver开启错误。
(5)界面序号,如果是1.service则表示1号桌面,那连接端口就是5901;2号则是5902,依次类推
(6)如果重启服务后,vnc无法连接,则很可能是没有开启vnc服务,重新开启即可,或者加入开机自动启动vnc
1.服务器SSH连接
在一台Linux客户机上,使用SSH连接,
ssh sdn@212.111.333.222
2.安装图形界面
2.1 安装图形界面
sudo yum grouplist
sudo yum groupinstall -y "GNOME Desktop"
sudo yum groupinstall "X Window System"
2.2 查看安装结果
yum grouplist
2.3 安装GNOME(GNOME Desktop)
sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
上面出现报错,
Transaction check error:
file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x86_64 conflicts with file from package grub2-common-1:2.02-0.65.el7.centos.2.noarch
运行命令:
sudo yum upgrade -y
备注:一定要确保图形界面安装成功!!!不能出现报错,否则无法连接VNC。
2.3 修改默认启动方式
安装完成后,修改默认启动方式为图形化界面
sudo systemctl set-default graphical.target
备注:假设想换回来,使用命令即可 sudo systemctl set-default multi-user.target ,然后重新系统
3.配置VNC
3.1安装VNC服务软件
sudo yum install tigervnc-server -y
3.2 验证是否安装成功
rpm -qa|grep tigervnc-server
3.3 配置vnc操作脚本
复制vnc的启动操作脚本, vncserver@:1.service中的:1表示"桌面号",启动的端口号就是5900+桌面号,即是5901,如果再有一个就是2啦,端口号加1就是5902,以此类推:
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
3.4 编辑操作脚本
sudo vim /etc/systemd/system/vncserver@\:1.service
找到其中的<USER> ,修改成自己的用户名,如果是root用户登录桌面就使用root用户,如果使用普通用户登录桌面使用普通用户,这里我使用用户名sdn,输入wq!保存退出
使用cat命令查看,修改成功
cat /etc/systemd/system/vncserver@\:1.service
设置vnc密码,执行su sdn,切换到刚配置文件设置的sdn用户,执行vncpasswd(这一步是在sdn用户下操作),输入两次密码,输入完成后会提示是否设置view-only password(“View-only password”密码,只允许查看,无控制权限。)这个可设可不设:
vncpasswd
4. 启动服务
4.1 启动vncserver服务
sudo systemctl daemon-reload
sudo systemctl start vncserver@\:1.service
可以加入开机启动,下次开机就会自动启动:
systemctl enable vncserver@\:1.service
4.2 查看是否成功
netstat -lnpt|grep Xvnc
查看端口是否监听,如果开启成功,会有以下输出。 如果没有输出,则很可能是图形界面没有安装成功或者图形界面未启动。
如果只启动了一个vncservice,那这个命令的输出就应该是4行,即两个5901和两个6001,如果超出了,建议使用sudo kill -9 pid杀死多余进程。
4.3 防火墙设置
防火墙的一些操作命令:
#启动
systemctl start firewalld
#关闭
systemctl stop firewalld
#查看状态
systemctl status firewalld
#开机禁用
systemctl disable firewalld
#开机启用
systemctl enable firewalld
#添加/开启一个端口,开启后重新载入生效(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent
#删除端口
firewall-cmd --zone= public --remove-port=80/tcp --permanent
#重新载入新规则
firewall-cmd --reload
#查看端口是否开启
firewall-cmd --zone= public --query-port=80/tcp
#查看所有打开的端口
firewall-cmd --zone=public --list-ports
防火墙可以选择开启或者关闭,如果关闭则不需要设置开启5901端口,如果开启防火墙则需要设置开启5901端口。
查看防火墙状态
firewall-cmd --state
方法1:开启防火墙
启动防火墙并开放5901端口
sudo systemctl start firewalld.service
sudo firewall-cmd --zone=public --add-port=5901/tcp --permanent
方法2:直接关闭防火墙
关闭防火墙,然后再禁止开机启动。
systemctl stop firewalld.service
systemctl disable firewalld.service
4.4 编辑config文件
关闭SELinux,编辑/etc/selinux/config 文件:
vim /etc/selinux/config
将enforcing改为disabled
修改后如下:
至此,VNC服务配置完成!!!
5.连接vnc
如ip是212.111.333.222,开启的是1号桌面,则连接为212.111.333.222:5901
之后安装提示操作点击continue输入密码之类的即可完成vnc连接
连接成功