2025年7月

要让 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 远程连接了。

Linux 桌面环境汉字显示乱码,这确实是个常见的问题,通常是由于 缺失中文字体 或 区域设置不正确 导致的。别担心,解决起来通常不难。

1. 检查和安装中文字体

这是最主要的原因。你的系统可能没有安装足够的中文字体,导致无法正确渲染汉字。

安装常用中文字体:
你可以安装一些广泛使用的字体包,例如文泉驿系列(wqy)和思源黑体(fonts-noto-cjk)。

Bash

sudo apt update
sudo apt install fonts-wqy-zenhei fonts-wqy-microhei fonts-noto-cjk

fonts-wqy-zenhei 和 fonts-wqy-microhei 是文泉驿系列字体,非常流行。

fonts-noto-cjk 包含思源黑体,是 Google 和 Adobe 合作开发的,覆盖了中文、日文、韩文,显示效果很好。

更新字体缓存:
安装新字体后,需要更新系统的字体缓存,让应用程序能够识别它们。

Bash

sudo fc-cache -fv

fc-cache -fv 会强制重建字体缓存,并显示详细信息。

重启 XFCE 会话或系统:
为了让字体更改完全生效,最好注销当前 XFCE 会话并重新登录,或者直接重启整个系统。

Bash

sudo reboot

2. 检查和设置正确的区域(Locale)

如果字体安装正确,但仍然乱码,那可能是系统的区域设置有问题,导致它不知道要以何种编码(如 UTF-8)显示汉字。

检查当前区域设置:

Bash

locale

你应该会看到类似 LANG=zh_CN.UTF-8 或 LANG=en_US.UTF-8 但带有正确的 UTF-8 编码的输出。如果看到 C 或其他非 UTF-8 的设置,就需要修改。

生成所需的区域设置(如果缺失):
如果 locale 命令没有显示 zh_CN.UTF-8 或你需要的中文区域设置,你需要生成它。

编辑 sudo nano /etc/locale.gen 文件。

找到 zh_CN.UTF-8 UTF-8 这一行(或 zh_SG.UTF-8 UTF-8 等你需要的中文区域设置),将其前面的 # 号删除,取消注释。

保存并关闭文件。

生成区域设置:

Bash

sudo locale-gen

设置默认区域设置:
接下来,将系统默认区域设置为中文(如果这是你希望的):

Bash

sudo update-locale LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8

或者,如果你想保留英文界面但能显示中文:

Bash

sudo update-locale LANG=en_US.UTF-8 # 保持英文界面
sudo update-locale LC_CTYPE="zh_CN.UTF-8" # 确保字符类型支持中文

LANG 设置了大部分程序的默认语言环境。

LC_ALL 会覆盖所有其他 LC_* 环境变量,通常设置为与 LANG 相同,以确保一致性。

LC_CTYPE 特别控制字符分类和大小写转换,对于正确显示多字节字符(如汉字)很重要。

重启系统:
区域设置的更改需要系统重启才能完全生效。

Bash

sudo reboot

3. 检查应用程序特定设置

少数情况下,某些应用程序可能有自己的字体或编码设置,独立于系统。

终端模拟器: 如果只有终端显示乱码,进入终端的偏好设置(通常是右键菜单或菜单栏),检查字体设置是否为中文字体,以及编码是否为 UTF-8。

Web 浏览器: 现代浏览器通常能很好地处理编码,但如果遇到特定网页乱码,可以尝试检查浏览器的编码设置(通常在“查看”或“更多工具”菜单下)。

总结

通常情况下,安装中文字体并更新字体缓存就能解决绝大部分乱码问题。如果不行,再检查和调整区域设置。

一步一步来,通常就能解决问题。

在 Armbian 上安装了最小 XFCE 桌面后,要实现从 Windows 远程登录到这个桌面,最常用和推荐的方法是使用 VNC (Virtual Network Computing) 或 XRDP。这两种方法各有优缺点,我会为你详细介绍。

1. 使用 VNC (Virtual Network Computing)

VNC 是一种图形桌面共享系统,可以让你在网络上远程控制另一台计算机的桌面。它相对轻量,是远程访问 Linux 桌面的常用选择。

优点:

轻量级: 对系统资源占用较小。

灵活: 可以连接到正在运行的物理桌面,也可以启动一个独立的虚拟桌面会话。

广泛支持: 有很多 VNC 客户端可供选择。

缺点:

安全性: 默认 VNC 协议不加密,需要额外配置 SSH 隧道来增强安全性。

安装和配置步骤:

安装 VNC 服务器:

有很多 VNC 服务器实现,例如 tightvncserver (轻量) 或 x11vnc (连接现有会话)。这里我们以 tightvncserver 为例,它会创建一个独立的虚拟桌面会话。

Bash

sudo apt update
sudo apt install tightvncserver

设置 VNC 密码:

首次运行 vncserver 命令会提示你设置一个 VNC 访问密码。记住这个密码。你还可以选择设置一个只读密码。

Bash

vncserver

它会告诉你 VNC 服务器正在哪个显示号上运行,例如 :1 或 :2。

配置 VNC 启动 XFCE:

你需要编辑 VNC 用户目录下的启动脚本,告诉它启动 XFCE 会话。

首先,停止刚刚启动的 VNC 服务器:

Bash

vncserver -kill :1 # 如果是 :2,就用 :2

备份原始启动脚本:

Bash

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

创建一个新的 xstartup 文件并编辑它:

Bash

nano ~/.vnc/xstartup

在文件中添加以下内容:

Bash

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
xrdb $HOME/.Xresources: 加载 X 资源的配置。

startxfce4 &: 启动 XFCE 桌面环境。

保存文件(Ctrl+O,回车,Ctrl+X)。

给予执行权限:

Bash

chmod +x ~/.vnc/xstartup

启动 VNC 服务器:

现在你可以启动 VNC 服务器了:

假设你之前配置的是 :1 窗口

sudo systemctl restart vncserver@:1.service
Bash

vncserver -geometry 1280x800 -depth 24 # 设置分辨率和颜色深度

你可以根据需要调整分辨率(例如 1920x1080)。

从 Windows 连接:

在 Windows 上,你需要一个 VNC 客户端。推荐使用 RealVNC Viewer 或 TightVNC Viewer。

下载并安装客户端。

打开客户端,输入你的 Armbian 设备的 IP 地址和 VNC 显示号(例如 192.168.1.100:1)。

输入你之前设置的 VNC 密码。

2. 使用 XRDP (RDP for Linux)

XRDP 是一个开源的远程桌面协议服务器,它实现了 Microsoft 的远程桌面协议 (RDP)。这意味着你可以使用 Windows 自带的“远程桌面连接”客户端来连接你的 Armbian 桌面,无需安装额外的第三方客户端。

优点:

兼容性好: 可以直接使用 Windows 内置的远程桌面客户端。

用户体验: 通常比 VNC 更流畅,尤其是在网络条件较好的情况下。

安全性:

RDP 协议本身包含加密。

缺点:

资源占用: 可能会比 VNC 稍微占用更多资源。

配置可能略复杂: 有时需要一些额外的配置才能与特定桌面环境完美配合。

安装和配置步骤:

安装 XRDP:

Bash

sudo apt update
sudo apt install xrdp

安装过程中,XRDP 会自动启动并作为一个服务运行。

配置 XRDP 启动 XFCE:
默认情况下,XRDP 可能会尝试启动一个默认的桌面环境。我们需要确保它启动 XFCE。

创建一个名为 .xsession 的文件在你的用户主目录中(如果不存在的话):

Bash

echo "xfce4-session" > ~/.xsession

将 .xsession 文件设置为可执行:

Bash

chmod +x ~/.xsession

XRDP 默认使用的端口是 3389。确保防火墙允许该端口通过 (如果你的 Armbian 上有防火墙,如 ufw):

Bash

sudo ufw allow 3389/tcp
sudo ufw enable # 如果没启用过

重启 XRDP 服务以应用更改:

Bash

sudo systemctl restart xrdp

从 Windows 连接:

在 Windows 搜索栏中输入 "远程桌面连接" 并打开它。

在“计算机”字段中输入你的 Armbian 设备的 IP 地址。

点击“连接”。

XRDP 会弹出一个登录界面。输入你的 Armbian 用户名和密码。

如果一切顺利,你应该就能看到 XFCE 桌面了。

安全性考虑 (强烈推荐)

无论选择 VNC 还是 XRDP,通过网络暴露桌面服务都存在安全风险。强烈建议通过 SSH 隧道 或 VPN 来加密你的远程连接。

使用 SSH 隧道 (针对 VNC):

在 Windows 上使用 PuTTY/OpenSSH 客户端:

打开 PuTTY (如果你用的是它) 或 Windows 10/11 内置的 OpenSSH 客户端。

PuTTY: 在“Connection”->“SSH”->“Tunnels”中,添加一个新的转发规则:

Source Port: 5901 (或任何你喜欢的本地端口)

Destination: localhost:5901 (这里 5901 对应 VNC 服务器的 :1 显示号)

点击“Add”,然后连接到你的 Armbian。

OpenSSH (命令行):

Bash

ssh -L 5901:localhost:5901 your_username@your_armbian_ip

这会在本地机器的 5901 端口创建一个隧道,将其流量转发到 Armbian 上的 5901 端口。

通过隧道连接 VNC:

在 VNC 客户端中,连接地址不再是 Armbian 的 IP,而是 localhost:1 (如果本地端口是 5901)。

选择 VNC 还是 XRDP 取决于你的偏好和网络环境。XRDP 对于 Windows 用户来说更加无缝,而 VNC 则在资源受限的环境下可能更灵活。

安装 Armbian 的最小 XFCE 桌面环境,你可以通过几种方法实现。通常,最推荐的做法是先安装 Armbian 的 CLI (命令行界面) 镜像,然后手动添加 XFCE 组件,而不是下载一个预构建的 XFCE 桌面镜像。这样可以最大限度地控制安装的内容,从而实现一个“最小”的桌面。

1. 更新系统

在安装任何新软件包之前,始终建议更新你的系统。登录到你的 Armbian 设备(通过 SSH 或直接连接显示器/键盘),然后运行:

Bash

sudo apt update
sudo apt upgrade

2. 安装 Xorg 和显示管理器

你需要 Xorg 来提供图形显示服务,以及一个 显示管理器 (Display Manager) 来提供图形登录界面。LightDM 是一个轻量级且与 XFCE 配合良好的选择。

Bash

sudo apt install --no-install-recommends xorg lightdm

--no-install-recommends:这个选项非常重要,它会阻止 apt 安装软件包推荐的所有额外、通常不必要的依赖项,从而帮助你保持系统最小化。

安装 LightDM 时,系统可能会提示你选择默认的显示管理器。选择 lightdm 并按回车。

3. 安装 XFCE 核心组件

现在,安装 XFCE 的核心组件。同样,使用 --no-install-recommends 来避免安装 XFCE 的所有“好东西”包,因为你只想要一个最小化的桌面。

Bash

sudo apt install --no-install-recommends xfce4 xfce4-terminal thunar

这里我们选择了:

xfce4: XFCE 桌面环境的核心包。

xfce4-terminal: XFCE 自己的终端模拟器,通常比默认的 xterm 更用户友好。

thunar: XFCE 的文件管理器,轻量且功能强大。

你可以根据需要添加其他必要的 XFCE 组件,例如:

xfce4-panel: XFCE 面板 (通常 xfce4 会拉取它)

xfce4-appfinder: 应用程序查找器

xfce4-settings: XFCE 设置管理器

xfwm4: XFCE 窗口管理器 (通常 xfce4 会拉取它)

mousepad: 一个简单的文本编辑器

如果你想要一个更完整的 XFCE 体验,但仍比完整版轻量,可以考虑安装 xfce4-goodies 包。但这会增加一些组件,如果你追求极致最小化则可以跳过:

Bash

sudo apt install xfce4-goodies

4. 重启系统

安装完成后,重启你的 Armbian 设备,以确保所有更改生效并启动图形界面:

Bash

sudo reboot

重启后,你应该会看到 LightDM 登录界面。选择 Xfce Session(通常在登录界面的某个齿轮或下拉菜单图标旁边),然后输入你的用户名和密码登录。

磁盘空间占用估算

一个通过这种方式安装的最小化 XFCE 桌面,在 Armbian 这样的精简系统上,通常会占用额外:

1.5 GB 到 3 GB 的磁盘空间。

这个数字是基于已经安装了基础 Armbian CLI 系统(大约 1GB - 2GB)之上的额外空间。所以,整个系统(包括基础 OS 和最小 XFCE)的总占用可能在 3 GB 到 5 GB 左右。

影响占用空间的因素:

Armbian 基础镜像:

你选择的 Armbian CLI 镜像本身的大小。

Debian/Ubuntu 版本:

不同版本的 Debian 或 Ubuntu 基础系统所需空间略有不同。

--no-install-recommends 的使用:

如果不使用这个选项,安装的软件包会多很多,占用空间也会显著增加。

额外安装的应用程序:

除了 XFCE 核心组件外,如果你安装了浏览器、办公软件、媒体播放器等,空间占用会迅速增加。

通过手动安装核心组件,你将拥有一个非常精简但功能齐全的 XFCE 桌面,非常适合资源有限的 ARM 单板计算机。

最新烧录版下载

https://github.com/hzyitc/armbian-onecloud/releases/download/ci-20250604-151846-UTC/Armbian-unofficial_25.08.0-trunk_Onecloud_bookworm_current_6.12.32.burn.img.xz

烧录完成后的操作

直接apt update会出错

错误信息如下:
“命中:1 http://security.debian.org bookworm-security InRelease

命中:2 http://deb.debian.org/debian bookworm InRelease

命中:3 https://mirrors.aliyun.com/docker-ce/linux/debian bookworm InRelease

获取:4 https://github.armbian.com/configng stable InRelease [5,467 B]

命中:5 http://deb.debian.org/debian bookworm-updates InRelease

点击数:7 http://deb.debian.org/debian bookworm-backports InRelease

错误:4 https://github.armbian.com/configng stable InRelease

由于没有公钥,无法验证下列签名: NO_PUBKEY 93D6889F9F0E78D5 NO_PUBKEY 1EB30FAF236099FE

命中:6 https://xogium.performanceservers.nl/apt bookworm InRelease

正在读取软件包列表... 完成

正在分析软件包的依赖关系树... 完成

正在读取状态信息... 完成

所有软件包均为最新。

W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:https://github.armbian.com/configng stable InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 93D6889F9F0E78D5 NO_PUBKEY 1EB30FAF236099FE

W: 无法下载 https://github.armbian.com/configng/dists/stable/InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY 93D6889F9F0E78D5 NO_PUBKEY 1EB30FAF236099FE

W: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。”

使用谷歌的双子座AI来解决

https://gemini.google.com/app/6869542018d8b5d3?hl=zh

解决办法

进入该网址https://github.com/armbian/configng/把页面汉化,即可找到答案。
该工具针对Armbian Linux进行了优化,但理论上,它也适用于任何基于 systemd、兼容 APT 的 Linux 发行版 - 包括 Linux Mint、Elementary OS、Kali Linux、MX Linux、Parrot OS、Proxmox、Raspberry Pi OS 等。

1,添加 Armbian 密钥 + 存储库并安装工具:
wget -qO - https://apt.armbian.com/armbian.key | gpg --dearmor | \
sudo tee /usr/share/keyrings/armbian.gpg > /dev/null
cat << EOF | sudo tee /etc/apt/sources.list.d/armbian-config.sources > /dev/null
Types: deb
URIs: https://github.armbian.com/configng
Suites: stable
Components: main
Signed-By: /usr/share/keyrings/armbian.gpg
EOF
sudo apt update
sudo apt -y install armbian-config

2,执行armbian-config
Armbian 配置已随 Armbian 预装。首先,打开终端或通过 SSH 登录,然后运行:

armbian-config

虽然现在还不懂armbian-config的作用,但是确实可以解决问题。