如何利用Aeroshell的VNC连接功能 ?基于Deepin桌面环境配置远程桌面完整指南

简介: 本文详解Deepin DDE下TigerVNC远程桌面黑屏/断连问题的根因与解决方案:绕过systemd依赖,手动启动dde-session、dock等核心组件,并配置dbus环境;附tigervnc 共享桌面备选方案及防火墙、自启配置,实测可用。(239字)

Deepin桌面环境配置TigerVNC远程桌面完整指南

前言

最近在Deepin操作系统上配置 TigerVNC 远程桌面时,遇到了连接后黑屏、立即断开的问题。经过一番折腾,终于找到了完美的解决方案。

本文将详细记录整个配置过程和踩坑经验,希望能帮助到遇到同样问题的朋友。


环境说明

  • 操作系统:Deepin DDE (Deepin Desktop Environment)
  • VNC服务端:TigerVNC 1.12.0
  • 用户:普通用户(非root)

问题现象

使用 TigerVNC 连接 Deepin 桌面时出现以下问题:

  • VNC客户端连接后黑屏,没有任何显示
  • 连接建立后几秒钟自动断开
  • 日志显示 dde-session.target 启动失败

根本原因分析

Deepin桌面环境(DDE)默认依赖 systemd 用户服务(特别是 dde-session.target)来启动整个桌面。

然而,在 VNC 创建的 X 会话环境中,systemd 用户服务默认没有运行,导致 startddedde-session 无法正常启动,最终表现为黑屏或立即退出。


解决方案

一、配置VNC启动脚本

核心思路:绕过 systemd,手动启动 DDE 的核心组件。

编辑 VNC 启动脚本 ~/.vnc/xstartup

#!/bin/bash

# 清理环境变量,避免与现有桌面冲突
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

export DISPLAY=:1
export XDG_SESSION_TYPE=x11
export XDG_CURRENT_DESKTOP=Deepin

# 等待X服务器就绪
sleep 2

# 启动dbus会话(关键!)
dbus-launch --sh-syntax > /tmp/dbus.env
source /tmp/dbus.env

# 直接启动DDE核心组件(绕过systemd)
/usr/bin/dde-session &

# 额外启动必要的桌面组件
sleep 1
/usr/bin/dde-launcher &   # 启动器
/usr/bin/dde-dock &       # 任务栏
/usr/bin/dde-desktop &    # 桌面

# 保持脚本运行
wait

设置执行权限:

chmod +x ~/.vnc/xstartup

二、手动启动VNC服务

# 停止已有会话(如果有)
vncserver -kill :1

# 清理残留文件
rm -f /tmp/.X1-lock /tmp/.X11-unix/X1

# 启动VNC服务
vncserver :1 -localhost no -geometry 1920x1080 -depth 24

参数说明

  • :1:显示编号,对应端口5901
  • -localhost no:允许非本机连接
  • -geometry 1920x1080:设置分辨率
  • -depth 24:颜色深度

三、配置开机自启(可选)

如果需要系统启动时自动运行 VNC 服务,可以配置 systemd。

创建服务文件:

/etc/systemd/system/vncserver@.service

[Unit]
Description=TigerVNC Server
After=network.target systemd-user-sessions.service

[Service]
Type=forking
User=guocf
Group=guocf
PAMName=login
WorkingDirectory=/home/guocf

PIDFile=/run/vncserver.pid

ExecStart=/usr/bin/vncserver :%i \
    -geometry 1920x1080 \
    -depth 24 \
    -localhost no \
    -SecurityTypes VncAuth

ExecStop=/usr/bin/vncserver -kill :%i
SuccessExitStatus=0 1

[Install]
WantedBy=multi-user.target

启用服务:

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

四、防火墙配置

如果连接不上,检查防火墙是否开放了 VNC 端口(默认5901):

# 如果使用ufw
sudo ufw allow 5901/tcp

# 如果使用firewalld
sudo firewall-cmd --permanent --add-port=5901/tcp
sudo firewall-cmd --reload

替代方案:x0vncserver

如果上述方案仍然无法解决,可以使用 x0vncserver 直接共享当前物理桌面(显示 :0),这是最简单可靠的方案。

# 安装
sudo apt install tigervnc-scraping-server

# 设置密码
vncpasswd ~/.vnc/passwd

# 启动共享
x0vncserver \
  -display :0 \
  -passwordfile ~/.vnc/passwd \
  -rfbport 5901 \
  -forever

优点

  • 100%可靠
  • 配置简单

缺点

  • 共享的是当前已登录的桌面
  • 用户注销后服务断开

常见问题排查

问题现象 可能原因 解决方法
黑屏后立即断开 dde-session.target 启动失败 使用本文的手动启动方案
X1 socket文件不存在 Xvnc初始化失败 清理 /tmp/.X1-lock/tmp/.X11-unix/X1 后重启
systemd服务启动失败 PID文件权限问题 检查服务配置中的用户和路径
dde-session: Unknown option 参数错误 直接运行 dde-session,不要加 --session 参数

连接测试

使用 VNC 客户端连接(如 TigerVNC Viewer、RealVNC 等):

服务器地址:你的IP地址:5901
密码:你设置的VNC密码

连接成功后,应该能看到完整的 Deepin 桌面环境。

image.png

image.png

image.png


核心要点总结

  • Deepin DDE 强依赖 systemd 用户服务,在 VNC 环境中需要手动启动核心组件绕过这一限制
  • 关键组件:
    • dde-session
    • dde-launcher
    • dde-dock
    • dde-desktop
  • 必须启动 dbus 会话,否则组件间无法正常通信
  • startdde 不是唯一入口,拆解为组件手动启动更可靠
  • 如果只需要远程访问当前桌面,x0vncserver 是最省心的方案

参考资料

  • TigerVNC官方文档
  • Deepin社区Wiki
  • Aeroshell支持VNC

本文档基于 TigerVNC 1.12.0 + Deepin DDE 环境验证通过

目录
相关文章
|
1月前
|
运维 Ubuntu Linux
Linux 多发行版 远程桌面踩坑总结:Deepin / openKylin / Ubuntu 实战记录
本文详述TigerVNC在Ubuntu 26.04、Deepin 20.9/23.9及openKylin 2.0 SP2四大发行版的适配实践,重点解决Wayland/X11冲突、DBus、输入法、DDE兼容等痛点,最终推荐「deepin」为最稳定方案。(239字)
532 4
|
Linux Python
竟然还有这么好用的工具,xshell你可以滚蛋了~~
竟然还有这么好用的工具,xshell你可以滚蛋了~~
1834 0
|
Ubuntu Linux Windows
Linux下音频开发: 读取声卡PCM数据保存到文件(alsa-lib库)
Linux下音频开发: 读取声卡PCM数据保存到文件(alsa-lib库)
2498 0
Linux下音频开发: 读取声卡PCM数据保存到文件(alsa-lib库)
|
3月前
|
人工智能 运维 JavaScript
【养虾教程】JVSClaw是什么?JVSClaw与OpenClaw有什么区别?阿里云/本地部署+百炼Coding Plan配置及避坑手册
2026年,AI智能体赛道迎来爆发式增长,OpenClaw(曾用名Clawdbot、Moltbot)凭借开源、高权限、全场景适配的优势成为全民热议的工具,而阿里云推出的JVSClaw则以“云端托管、零运维”的特点快速崛起。很多用户陷入困惑:JVSClaw到底是什么?它和OpenClaw(Clawdbot)有什么本质区别?该选择哪一个部署使用?
2993 6
|
1月前
|
存储 数据采集 编解码
i3s 格式技术
i3s 格式技术
|
1月前
|
JSON JavaScript 调度
流式加载 / 按需加载技术
流式加载 / 按需加载技术
|
1月前
|
存储 编解码 JSON
glTF/GLB 格式技术
glTF/GLB 格式技术
|
1月前
|
人工智能 运维 供应链
主权财富管理机构钓鱼攻击防控与资金安全治理研究 —— 以爱尔兰 NTMA 事件为样本
爱尔兰NTMA遭供应链钓鱼攻击,500万欧元公共资金被盗,仅追回半数。事件暴露审批穿透、异常检测缺失等系统性风险。本文基于实证构建“技术+流程+认知+协同”四位一体防控模型,并提供可落地的代码实现,推动主权财富机构从人工核验迈向数据驱动、闭环可控的全周期安全治理。(239字)
76 0
|
2月前
|
人工智能 弹性计算 安全
Hermes Agent安装保姆级教程:共3中方法,大家任选,总有一种方法适合你!
阿里云提供三种零代码部署Hermes Agent(爱马仕)方案:轻量应用服务器(低至38元/年)、无影云电脑(支持微信接入)和ECS(免费)。该开源AI智能体具备自我进化能力,5美元服务器即可运行,新手友好,2026年AI Agent之争未定,但部署已极简。