要让 vncserver 服务在 Armbian 启动时自动运行,最推荐和最现代的方法是创建一个 systemd 服务单元文件。Systemd 是大多数现代 Linux 发行版(包括 Armbian 所基于的 Debian/Ubuntu)使用的初始化系统。

以下是详细步骤:

1. 创建 VNC Systemd 服务文件

你需要为每个 VNC 用户创建一个服务文件。假设你希望 VNC 服务以用户 your_username 运行,并且在显示 :1 上。

打开终端或通过 SSH 连接到你的 Armbian 设备。

创建服务文件:
使用 sudo 和文本编辑器(如 nano)创建一个新的 systemd 服务文件。文件名通常是 vncserver@.service,其中 @ 符号表示这是一个模板服务,可以为不同的用户或显示号实例化。

Bash

sudo nano /etc/systemd/system/vncserver@.service

添加服务内容:
将以下内容粘贴到文件中。请务必将 User=your_username 替换为你实际的用户名,并将 ExecStart 和 ExecStop 中的 your_username 替换为你的用户名。

Ini, TOML

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=%i
# PIDFile=/home/%i/.vnc/%H%i.pid # 某些版本可能需要,但通常不必要

# Customize the following line to fit your needs
# For example, 1280x800 resolution and 24-bit color depth
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

User=%i: %i 是 systemd 模板服务中的一个占位符,它会在你启用服务时被替换为实例名。例如,如果你启用 vncserver@1.service,那么 %i 就会变成 1。然而,对于 VNC 服务,我们通常希望它以特定用户身份运行,所以这里我们直接指定 User=。

ExecStart: 启动 VNC 服务器的命令。

-depth 24: 设置颜色深度为 24 位。

-geometry 1280x800: 设置 VNC 会话的分辨率。你可以根据需要修改。

:%i: 这是 VNC 的显示号。当你启用服务时,例如 vncserver@1.service,%i 会被替换为 1,表示 VNC 会话将在显示 :1 上运行。

ExecStop: 停止 VNC 服务器的命令。

保存并关闭文件(在 nano 中按 Ctrl+O,回车,然后 Ctrl+X)。

2. 重载 systemd 配置

创建或修改服务文件后,需要让 systemd 重新加载其配置:

Bash

sudo systemctl daemon-reload

3. 启用并启动 VNC 服务

现在,你可以启用服务,使其在每次启动时自动运行。你需要指定 VNC 会话的显示号(例如 1)作为服务实例。

启用服务:

Bash

sudo systemctl enable vncserver@1.service

这会创建一个符号链接,确保服务在系统启动时被激活。

立即启动服务:

Bash

sudo systemctl start vncserver@1.service

4. 验证服务状态

你可以检查服务是否正在运行:

Bash

sudo systemctl status vncserver@1.service

如果一切正常,你应该会看到 Active: active (running) 的输出。

5. 注意事项

用户权限: 确保 your_username 用户已经设置了 VNC 密码 (vncserver 命令会提示你设置)。这个用户也应该有权限启动 XFCE 会话。

防火墙: 如果你的 Armbian 上启用了防火墙(如 ufw),请确保 VNC 端口(默认是 5900 + 显示号,例如 :1 对应端口 5901)是开放的。

Bash

sudo ufw allow 5901/tcp

sudo ufw enable # 如果没启用过
多用户/多会话: 如果你需要为多个用户或在不同的显示号上启动 VNC 服务,只需为每个用户/显示号重复 sudo systemctl enable vncserver@X.service 和 sudo systemctl start vncserver@X.service,其中 X 是不同的显示号。

~/.vnc/xstartup 文件: 确保你之前配置的 ~/.vnc/xstartup 文件内容正确,并且有执行权限。这个文件告诉 VNC 服务器启动哪个桌面环境(例如 startxfce4 &)。

完成这些步骤后,你的 Armbian 设备在每次启动时都应该会自动启动 VNC 服务器,你就可以从 Windows 远程连接了。

标签: none

添加新评论