Centos7 安装 VNC Server

Centos7 安装 VNC Server

这篇教程将教会大家如何在 Centos7 的图形界面下去安装最新版的 VNC 服务端。

VNC (Virtual Network Computing) 是一个 C/S 架构的软件系统,为用户提供远程的桌面环境。

0x00 准备阶段

基本需要:

  • CentOS 7 安装程序
  • RHEL 7 安装程序(虽然原文提及,但在此教程中主要关注 CentOS 7)

0x01 在 Centos7 上面安装 VNC 服务端

Tigervnc-server 通过 Xvnc 服务端来启动 sessions。它可以运行在 Gnome 或 KDE 等桌面环境。

$ sudo yum install tigervnc-server

0x02 设置密码

启动 VNC 后需要设置一个六位的密码。如果需要连接的远程账户就是当前的用户,那么在终端里面直接输入:

vncpasswd

设置密码即可。如果是其他的账户,那么先 su - 账户 再做密码设置即可。

0x03 配置 systemd

配置 VNC 需要使用 systemd 来进行设置,这会涉及到后续的开机启动部分。下面的配置文件是一个模板,用 root 权限来进行操作添加。如果你的用户不在 sudo 的范围内,那么请直接使用 root 来操作。

sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

如果需要可以手动更改这个配置文件。@ 符号后面的值 1 表示显示编号(端口 5900 + 显示编号)。此外,对于每个启动的 VNC 服务器,端口 5900 将增加 1。

编辑配置文件:

sudo vim /etc/systemd/system/vncserver@:1.service  # 如果这个文件不存在,可以自己手动添加

配置文件内容如下:

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l my_user -c "/usr/bin/vncserver %i -geometry 1280x1024"
PIDFile=/home/my_user/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

请将 my_user 替换为实际使用的用户名。

0x04 启动 VNC

使用 systemd 启动 VNC,将 VNC 的进程添加到开机启动:

sudo systemctl daemon-reload
sudo systemctl start vncserver@:1
sudo systemctl status vncserver@:1
sudo systemctl enable vncserver@:1

0x05 查看 VNC 的运行状态

要列出 VNC 的运行端口,可以使用 ss 命令来实现。因为我们只运行了一个 VNC 的服务端,所以第一个运行的 VNC 的端口是 5901,使用的是 TCP 协议。

同样,必须使用 root 权限执行 ss 命令。如果您为不同的用户并行启动其他 VNC 实例,则第二个端口值为 5902,第三个端口值为 5903,依此类推。端口 6000+ 用于允许 X 应用程序连接到 VNC 服务器。

sudo ss -tulpn | grep vnc

(注意:原文中的 Verify VNC Listening Ports 重复了两行,这里已去除。)

0x06 防火墙配置

为了允许外部 VNC 客户端连接到 CentOS 中的 VNC 服务器,您需要确保允许正确的 VNC 开放端口通过防火墙。

如果只启动了一个 VNC 服务器实例,您只需打开第一个分配的 VNC 端口:5901/TCP,方法是发出以下命令在运行时应用防火墙配置,并使其永久生效:

sudo firewall-cmd --add-port=5901/tcp
sudo firewall-cmd --add-port=5901/tcp --permanent

然后重新加载防火墙配置:

sudo firewall-cmd --reload
上一篇
下一篇