基于 openEuler 操作系统的 VNC(noVNC) 部署流程

基于 openEuler 操作系统的 VNC(noVNC) 部署流程

闫志聪
2024-08-15 / 0 评论 / 293 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年08月14日,已超过280天没有更新,若内容或图片失效,请留言反馈。

本文基于 openEuler 22.03 LTS SP1 操作系统进行操作

1 VNC 部署流程

1.1 安装 VNC

# 安装 VNC 服务端
$ yum install -y tigervnc-server

# 安装 VNC 客户端(可选)
$ yum install -y tigervnc

# 查看安装情况
$ rpm -qa | grep tigervnc
tigervnc-selinux-1.12.0-9.oe2203sp1.noarch
tigervnc-license-1.12.0-9.oe2203sp1.noarch
tigervnc-server-minimal-1.12.0-9.oe2203sp1.x86_64
tigervnc-server-1.12.0-9.oe2203sp1.x86_64
tigervnc-1.12.0-9.oe2203sp1.x86_64

# 查看服务管理文件,用于使用 systemd 管理 VNC 服务
$ ll /usr/lib/systemd/system/vncserver\@.service
-rw-r--r-- 1 root root 1558  5月 24  2023 /usr/lib/systemd/system/vncserver@.service

# 查看相关配置文件
$  tree /etc/tigervnc/
/etc/tigervnc/
├── vncserver-config-defaults        # 默认配置文件,可被 ~/.vnc/config 和 vncserver-config-mandatory 覆盖
├── vncserver-config-mandatory        # 强制配置文件,可以覆盖 ~/.vnc/config 和 vncserver-config-defaults
└── vncserver.users                    # 配置 VNC 用户以及访问端口号

0 directories, 3 files


1.2 配置 tigervnc-server

1.2.1 修改默认配置文件

tigervnc-server 默认配置文件位于 /etc/tigervnc/vncserver-config-defaults

修改前的配置文件内容为:

$ cat /etc/tigervnc/vncserver-config-defaults
## Default settings for VNC servers started by the vncserver service
#
# Any settings given here will override the builtin defaults, but can
# also be overriden by ~/.vnc/config and vncserver-config-mandatory.
#
# See HOWTO.md and the following manpages for more details:
#     vncsession(8) Xvnc(1)
#
# Several common settings are shown below. Uncomment and modify to your
# liking.

# session=gnome
# securitytypes=vncauth,tlsvnc
# geometry=2000x1200
# localhost
# alwaysshared

修改后的配置文件内容为:

$ cat /etc/tigervnc/vncserver-config-defaults
session=gnome                        # 会话类型,此处为 gnome 桌面
securitytypes=vncauth,tlsvnc        # 安全类型
geometry=1918x888                    # VNC 界面分辨率,根据实际情况调整
# localhost                            # 若取消注释,表示只能在本地连接 VNC
alwaysshared                        # 表示同一个显示端口允许多用户同时登录


1.2.2 配置 VNC 用户及访问端口

VNC 用户以及访问端口号配置文件为 /etc/tigervnc/vncserver.users

# 修改配置文件,添加端口号及对应的用户名
$ sed -i '$a :1=root' /etc/tigervnc/vncserver.users

说明:

:1=root :表示可以通过 :1 或 5901 端口,使用 root 用户登录 VNC,其他用户类似


1.2.3 修改 VNC 用户密码

(1)若 VNC 用户为 root 用户,则按照以下步骤设置 root 用户密码

# 确认当前登录用户为 root 用户
$ whoami
root

# 设置 root 用户密码
$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)?
A view-only password is not used

# 查看生成的密码文件
$ ls -l ~/.vnc/passwd
-rw------- 1 root root 8  3月  4 14:18 /root/.vnc/passwd

(2)若 VNC 用户为普通用户(假如普通用户为 ep),则按照以下步骤设置普通用户密码

# 切换到 ep 用户
$ su - ep

# 确认当前用户为 ep 用户
$ whoami
ep

# 设置 ep 用户密码
$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)?
A view-only password is not used

# 查看生成的密码文件
$ ls -l ~/.vnc/passwd
-rw------- 1 ep ep 8  3月  4 14:22 /home/ep/.vnc/passwd


1.2.4 配置启动参数

启动参数文件位于 ~/.vnc/xstartup ,若此文件不存在,则手动创建即可

注意:

若 VNC 用户为 root 用户,则此文件位于 /root/.vnc/ 目录,若 VNC 用户为普通用户,则此文件位于 /home/USER/.vnc/ 目录

其中,DISPLAY 变量的值应该为:从 /etc/tigervnc/vncserver.users 文件查找当前用户对应端口号

# 创建该文件并写入以下参数
cat > ~/.vnc/xstartup <<EOF
#!/bin/bash

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
#exec /etc/X11/xinit/xinitrc
(sleep 5 && export DISPLAY=:1 && xfce4-session) &
EOF


1.2.5 创建服务管理脚本

# 复制服务管理脚本,vncserver@:1.service,其中 @ 后面的数字与 /etc/tigervnc/vncserver.users 文件中的端口对应
$ cp -a /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

# 重新加载服务管理脚本
$ systemctl daemon-reload

# 启动 VNC 服务并设置开机自启
$ systemctl start vncserver@:1.service && systemctl enable vncserver@:1.service

# 查看服务状态
$ systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
     Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
     Active: active (running) since Fri 2024-03-01 15:22:13 CST; 1h 31min ago
    Process: 1195 ExecStart=/usr/libexec/vncsession-start :1 (code=exited, status=0/SUCCESS)
   Main PID: 1219 (vncsession)
      Tasks: 0 (limit: 98697)
     Memory: 1.8M
     CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
             ‣  1219 /usr/sbin/vncsession root :1

3月 01 15:22:13 localhost systemd[1]: Starting Remote desktop service (VNC)...
3月 01 15:22:13 localhost systemd[1]: Started Remote desktop service (VNC).

# 查看端口号
$ netstat -anpt | grep Xvnc
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      1446/Xvnc
tcp6       0      0 :::5901                 :::*                    LISTEN      1446/Xvnc


1.3 使用 noVNC 转发

# 安装 noVNC 服务
$ yum install -y novnc

# 连接 VNC,执行该命令后将持续占用终端
$ novnc_server --listen 44944 --vnc localhost:5901

# 可以执行以下命令,将其放入后台运行
$ nohup novnc_server --listen 44944 --vnc localhost:5901 &

# 查看端口号
$ netstat -anpt | grep python3
tcp        0      0 0.0.0.0:44944           0.0.0.0:*               LISTEN      9690/python3

现在可以在 Windows 浏览器中通过 http://SERVER-IP:noVNC-PORT 来访问 VNC 服务了,例如:http://192.168.230.250:44944/

0

评论

博主关闭了当前页面的评论