6. vnc远程桌面
6.1 桌面vino配置VNC服务
VNC分为客户端和服务端,我们首先进行ArmSoM产品上服务端的配置。
6.1.1 打开配置
6.1.2 使用 MobaXterm 连接 VNC
可以通过MobaXterm的VNC进行链接,需要输入产品实际ip:
6.1.3 登录成功
6.2 命令TightVNC配置VNC服务
使用TightVNC建议选择 xfce 轻量级桌面环境,不依赖过多的特效和图形加速。 以下例子使用 Armbian Armsom-cm5-io_bookworm_xfce_desktop
6.2.1 安装 TightVNC Server 和配置 XFCE
安装 TightVNC Server
在终端执行以下命令,安装 TightVNC 服务端:
armsom@armsom-cm5-io:~$ sudo apt update
armsom@armsom-cm5-io:~$ sudo apt install tightvncserver
启动 VNC Server
运行以下命令初始化 VNC 服务:
armsom@armsom-cm5-io:~$ vncserver
- 第一次启动会提示设置一个访问密码(建议设置为 6~8 位密码)。
- VNC 服务会分配一个虚拟桌面,比如
:1
(对应端口号 5901,即 5900 + 虚拟桌面号)。 - 你可以通过以下命令查看当前运行的 VNC 会话:
armsom@armsom-cm5-io:~$ ps -ef | grep vnc
armsom 956 1 0 14:43 ? 00:00:00 Xtightvnc :1 -desktop X -auth /home/armsom/.Xauthority -geometry 1920x1080 -depth 24 -rfbwait 120000 -rfbauth /home/armsom/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb
armsom 1194 1 0 14:43 ? 00:00:00 /bin/sh /home/armsom/.vnc/xstartup
armsom 2361 2019 33 14:46 ttyFIQ0 00:00:00 grep vnc
杀死 VNC 会话
如果需要终止某个会话,例如 :1
,运行以下命令:
vncserver -kill :1
4. 配置 VNC 启动 XFCE 桌面
编辑 VNC 的配置文件 ~/.vnc/xstartup
:
nano ~/.vnc/xstartup
确保文件的最后一行设置为启动 XFCE 桌面环境: startxfce4 &
#!/bin/sh
xrdb "$HOME/.Xresources"
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession
startxfce4 &
注意:
如果文件没有执行权限,请添加可执行权限:
chmod +x ~/.vnc/xstartup
重新启动 VNC Server
执行以下命令重新启动 VNC 服务:
vncserver
6.2.2 使用 MobaXterm 连接 VNC
可以通过MobaXterm的VNC进行链接,需要输入产品实际ip:
注意事项
- 不能同时登录桌面环境
- 如果服务器端已经通过物理方式登录桌面环境,VNC 服务端可能无法正常启动。
- 解决方案:登出服务器的物理桌面,只运行 VNC 虚拟桌面。
- 防火墙配置
确保防火墙允许 5901 端口访问(根据 VNC 会话号调整端口)。例如:
sudo ufw allow 5901
- 系统资源占用
- 虚拟桌面会消耗服务器的 CPU 和内存资源,建议按需启动和管理多个 VNC 会话。
6.2.3 创建 TightVNC 的 systemd 服务
要使 TightVNC Server 在系统启动时自动运行,可以通过创建 systemd 服务 来实现。以下是完整的操作步骤:
创建 TightVNC 的 systemd 服务
在终端中,使用 sudo
权限创建一个新的服务文件:
sudo nano /etc/systemd/system/tightvncserver.service
添加服务配置
将以下内容粘贴到 tightvncserver.service
文件中:
[Unit]
Description=TightVNC Server
[Service]
Type=forking
User=armsom
Environment=DISPLAY=:1
PIDFile=/home/armsom/.vnc/%H:1.pid
ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24
ExecStop=/usr/bin/vncserver -kill :1
Restart=on-failure
[Install]
WantedBy=multi-user.target
说明:
- User= 替换为你的用户名。
- ExecStart= 和 ExecStop= 分别是启动和停止 VNC 服务的命令。
:1
表示第一个 VNC 虚拟桌面,默认端口为 5901。- -geometry 1920x1080 设置桌面分辨率,可以根据需要修改。
- -depth 24 设置颜色深度。
- PIDFile 路径中的用户名也要替换为你的用户名。
重新加载 systemd 并启用服务
输入以下命令重新加载 systemd 配置:
sudo systemctl daemon-reload
启用 TightVNC 服务开机自启动:
sudo systemctl enable tightvncserver
立即启动 TightVNC 服务:
sudo systemctl start tightvncserver
4. 验证服务状态
检查 TightVNC 服务是否正常运行:
sudo systemctl status tightvncserver
输出结果中应该显示服务正在运行:
armsom@armsom-cm5-io:~$ sudo systemctl status tightvncserver
● tightvncserver.service - TightVNC Server
Loaded: loaded (/etc/systemd/system/tightvncserver.service; enabled; prese>
Active: active (running) since Tue 2024-12-17 14:56:15 CST; 7min ago