当前位置: 首页 > news >正文

Ubuntu 物理桌面远程访问教程(基于 RealVNC / mstsc)

Ubuntu 物理桌面远程访问教程(基于 RealVNC / mstsc)

适用对象:任意安装了 GNOME + GDM 的 Ubuntu 系统
目标:远程连接系统默认物理桌面 :0,无虚拟桌面、无 Xfce,真实 GNOME 桌面环境


1. 准备条件

  • Ubuntu 系统已安装并正常运行 GNOME 桌面(Ubuntu Desktop)
  • GDM3 作为默认显示管理器(登录管理器)
  • 系统默认启动目标为图形界面
  • 网络可达,VNC 客户端已安装(RealVNC Viewer、mstsc + VNC插件等)

2. 安装必要软件

sudo apt update
sudo apt install gdm3 ubuntu-desktop gnome-shell gnome-session x11vnc -y

说明:

  • gdm3 是 GNOME 显示管理器
  • x11vnc 是用于远程附着物理桌面的 VNC 服务器

3. 配置默认显示管理器为 GDM3

执行:

sudo dpkg-reconfigure gdm3

选择 gdm3 作为默认显示管理器。

如果该命令无效,手动检查:

cat /etc/X11/default-display-manager

应为:

/usr/sbin/gdm3

4. 设置系统默认启动到图形界面

sudo systemctl set-default graphical.target

5. 配置 GDM 自动登录(可选)

编辑:

sudo nano /etc/gdm3/custom.conf

找到并取消注释以下行,替换为你的用户名:

AutomaticLoginEnable = true
AutomaticLogin = your_username

保存并退出。


6. 创建 x11vnc systemd 服务,附着物理桌面

创建服务文件:

sudo nano /etc/systemd/system/x11vnc.service

写入:

[Unit]
Description=Start x11vnc at boot and attach to physical display :0
After=graphical.target network.target gdm.service
Requires=graphical.target[Service]
Type=simple
User=your_username
ExecStart=/usr/bin/x11vnc -display :0 -auth guess -forever -shared -nopw
Restart=on-failure
Environment=DISPLAY=:0
Environment=XAUTHORITY=/home/your_username/.Xauthority[Install]
WantedBy=graphical.target

注意替换所有 your_username 为你的实际登录用户名。


7. 启用并启动 x11vnc 服务

sudo systemctl daemon-reload
sudo systemctl enable x11vnc
sudo systemctl start x11vnc

8. 重启系统

sudo reboot

9. 验证物理桌面运行状态

SSH 登录后执行:

ps -ef | grep gnome-shell

如果显示有 gnome-shellgnome-session/usr/lib/xorg/Xorg :0 等进程,说明物理桌面正常启动。


10. 使用 RealVNC 或 mstsc(带 VNC 插件)连接

  • 目标地址:Ubuntu 机器 IP 地址
  • 端口:默认 5900
  • 连接后即可看到完整的系统 GNOME 物理桌面,无虚拟桌面,无 Xfce。

常见问题

  • 连接被拒绝:确认防火墙是否放行5900端口
  • 黑屏或无响应:确认 GDM 正常运行,系统已进入图形界面
  • 认证失败:x11vnc 配置了 -nopw,初期可无密码,正式环境建议设置密码

总结

  • 本方案直接附着 Ubuntu 默认物理桌面
  • 避免使用虚拟桌面脚本或 Xfce 桌面
  • 适合 Jetson、服务器或任何 Ubuntu 桌面远程访问需求
  • 兼容 RealVNC、mstsc(结合 VNC 插件)等常用客户端
http://www.dtcms.com/a/259274.html

相关文章:

  • npm 报错:“无法加载文件 ...npm.ps1,因为在此系统上禁止运行脚本” 解决方案(附执行策略说明)
  • 暴雨信创电脑代理商成功中标长沙市中医康复医院
  • docker搭建mysql主从集群
  • 笔记01:现有PCB文件自动生成PCB库
  • 分布式系统 - 分布式缓存及方案实现
  • 基于FPGA的UART回环设计
  • Qt开发1--Qt概述,安装,创建第一个Qt项目
  • 在windows系统上安装Comfy UI
  • 内存条与CPU三级缓存之间的区别
  • Vue SPA 路由跳转无法回到顶部问题排查与解决
  • C++设计模式(GOF-23)——04 C++装饰器模式(Decorator)(一个类同时继承和组合另一个类)解决类爆炸问题、模板装饰器
  • iPhone越狱基本流程
  • 【CMake入门学习教程】bash语句示例注解
  • 60页PPT实战方案 | 大数据决策分析平台建设全流程路径图
  • Bright Data亮数据 MCP + N8N x AI 新闻编辑:基于亮数据,数据采集到观点摘要工作流自动化实践
  • “Ubuntu 18.04.6 LTS“ 配置网卡静态IP
  • 数据赋能(324)——安全与合规——所有权
  • 实战 X-AnyLabeling:构建高效自动标注系统的工程实践
  • 2012_2NOIP 国王游戏 [贪心+排序+高精]
  • java 对接ETH(以太坊) 交易相关资料
  • 跟着AI学习C#之项目实践Day7
  • 在uni-app build的index.html 中加入 <mate,和title 等标签内容 内容
  • 《大模型 Agent 应用实战指南》第2章:商业目标与 Agent 能力边界定义
  • 【评估指标】MAP@k (目标检测)
  • 探索解析C++ STL中的 list:双向链表的高效实现与迭代器
  • Linux学习笔记:PCIe内核篇(3):DPC服务
  • 浪潮存储单卷单LUN不能超过64T、128T解决方法
  • 领域驱动设计(DDD)【13】之重构中的坏味道:深入理解依恋特性(Feature Envy)与表意接口模式
  • 深入浅出:RocketMQ与Kafka的双剑合璧,实现高可用与高吞吐
  • 计算机网络-----详解HTTP协议