文章目录
- 1. 准备工作
- 1.1 安装图形化界面
- 1.2 安装Tigervnc
- 2. 新建用户vnc端口(包括root用户)
- 2.1 新建系统用户
- 2.2 创建并修改配置文件
- 2.3 加载vnc程序
- 2.4 防火墙设置
- 2.5 开启新端口
- 2.6 远程控制
- 3. 问题
- 3.1 问题1——端口占用
- 3.2 问题2——更换分辨率
参考文献
Centos7安装和配置VNC服务器 - GNOME篇
Centos7安装和配置VNC服务器 - Xfce篇
CentOS 7安装配置VNC远程登陆
1. 准备工作
1.1 安装图形化界面
首先查看是否装有GNOME或者xfce
rpm -qa | grep gnome
# rpm -qa | grep xfce
如果有则直接到1.2,否则安装GNOME或者xfce
# 安装GNMOE
yum -y groupinstall "X Window System"
yum -y groupinstall "GNOME Desktop"
# 或者安装xfce
# yum install epel-release
# yum groupinstall "Xfce" -y
1.2 安装Tigervnc
首先查看是否装有vnc
rpm -qa | grep vnc
如果有则跳到2. ,否则安装tigervnc
yum install tigervnc-server # tigervnc
2. 新建用户vnc端口(包括root用户)
2.1 新建系统用户
su
adduser <username> # <username>替换成用户名字
passwd <username>
cat /etc/passwd # 查询用户是否创建成功
NOTE: 由于有时候需要登录root用户来对系统进行控制。因此也可为root用户设置一个vnc端口。如果是新建root用户的vnc端口则跳过2.1,直接创建并修改配置文件。
2.2 创建并修改配置文件
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:num.service # num为端口号
vim /etc/systemd/system/vncserver@:num.service # 修改文件里的 <user> 为 新用户名
NOTE: 新建普通用户VNC端口和root用户VNC端口一个很重要的区别便在这。配置文件中<user>替换成root。
2.3 加载vnc程序
systemctl daemon-reload
systemctl enable vncserver@:num.service # 设置开机自动启动
systemctl start vncserver@:num.service
systemctl status vncserver@:num.service # 查看用户状态 为Active:"active即可
2.4 防火墙设置
由于我们的 VNC 服务正在TCP端口5900+上侦听,所以防火墙必须放行。不建议直接简单粗暴的关闭防火墙。
- 添加单个端口
firewall-cmd --permanent --zone=public --add-port=5900/tcp # 添加端口号0
firewall-cmd --reload # 重新加载防火墙
NOTE: permanent指更改是永久性的。
- 添加多个端口
firewall-cmd --permanent --zone=public --add-port=5901-5920/tcp # 添加端口号1-20
firewall-cmd --reload # 重新加载防火墙
- 查看端口是否加入
# 查看端口号是否被加入
firewall-cmd --list-all-zones
firewall-cmd --list-ports
NOTE:num应在1-20之间,如果超出20,需额外打开防火墙的端口
NOTE:添加端口号5900+num, eg: 端口0,则需打开5900
//防火墙问题
查看防火墙状态:systemctl status firewalld
开启防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
移除某个端口的防火墙设置:firewall-cmd --permanent --zone=public --remove-port=<port>/tcpfirewall-cmd --reload
2.5 开启新端口
进入新建的用户下,并开启端口和设置分辨率
su - <username> # 进入新用户
vncserver :num -geometry 1920x1080 # 会提示输入vnc密码,比如123456,输入n
最好多执行
$ systemctl enable vncserver@:num.service
$ systemctl start vncserver@:num.service
NOTE:也可以提前用vncpasswd设置密码
2.6 远程控制
在VNCviewer中登录ip(111.11.111.111)和端口(1),连接111.11.111.111:1,即可远程控制服务器。
3. 问题
3.1 问题1——端口占用
查看端口占用情况。
ps -ef | grep -i vnc | grep -v grep
- 解决方法1 —— 手动kill进程
kill -9 (pid)rm -f /tmp/.X*-lock # *是用户端口号rm -f /tmp/.X11-unix/X* # *是用户端口号
- 解决方法1 —— 进入该用户kill
su <username> # 进入该用户vncserver -kill :num # 关闭端口进程
3.2 问题2——更换分辨率
su <username> # 进入该用户vncserver -kill :num # 关闭端口进程vncserver :num -geometry 1920x1080 # 开启端口