Ubuntu 22.04 安装 Allow Locked Remote Desktop 扩展:解决锁屏后 mstsc 无法连接的问题

在 Ubuntu 22.04 上,如果已经开启了系统自带的 Remote Login ,平时用 Windows 的 远程桌面连接(mstsc) 可以正常登录,但一旦远程主机自动锁屏,RDP 就连不上了,这通常不是 Windows 客户端的问题,而是 GNOME Remote Desktop 在锁屏场景下的限制

这篇文章记录一下完整解决过程:通过安装 GNOME 扩展 Allow Locked Remote Desktop,让 Ubuntu 在锁屏状态下仍然允许远程桌面连接。


一、问题现象

环境如下:

  • 远程系统:Ubuntu 22.04

  • 桌面环境:GNOME

  • 远程方式:Ubuntu 自带 Remote Login

  • 客户端:Windows 自带 mstsc

平时在 Ubuntu 中开启:

复制代码
Settings -> Sharing -> Remote Login

之后,Windows 里输入远程 IP,使用 mstsc 可以正常连接。

但是只要 Ubuntu 远程主机进入自动锁屏状态,就会出现这些问题之一:

  • mstsc 直接连接失败

  • 长时间卡在连接中

  • 黑屏后断开

  • 明明机器没关机,但就是无法进入桌面

如果你也遇到这个问题,可以试试下面的方案。


二、解决思路

这次使用的方案是:

给 GNOME 安装 "Allow Locked Remote Desktop" 扩展

这个扩展的作用很直接:

允许系统在锁屏状态下继续接受远程桌面连接。

它非常适合下面这种场景:

  • Ubuntu 作为家里或办公室的远程主机

  • 平时无人值守

  • 机器需要锁屏,但又希望随时通过 mstsc 连进去

  • 不想完全关闭锁屏功能

扩展地址:

复制代码
https://extensions.gnome.org/extension/4338/allow-locked-remote-desktop/

三、先安装扩展依赖组件

在 Ubuntu 22.04 里,先打开终端,执行下面两条命令:

复制代码
sudo apt update
sudo apt install -y gnome-shell-extension-prefs chrome-gnome-shell

这两个包是干什么的?

1. gnome-shell-extension-prefs

这个包提供 GNOME 扩展的管理能力,可以帮助你查看、启用、禁用系统扩展。

2. chrome-gnome-shell

这个包用于让浏览器和 GNOME 扩展网站通信。

没有它的话,很多时候你虽然能打开扩展页面,但安装按钮不可用,或者浏览器识别不到本机 GNOME 环境。

安装完成后,建议关闭终端先不要动,后面还会继续用。


四、在浏览器中安装扩展

接下来,在 Ubuntu 本机图形桌面中打开浏览器。

推荐使用:

  • Firefox

  • Chrome

  • Edge

  • Chromium

然后访问扩展页面:

复制代码
https://extensions.gnome.org/extension/4338/allow-locked-remote-desktop/

如果页面可以直接安装

正常情况下,页面上会出现一个安装开关。

点击开关后,浏览器会弹出确认提示,选择安装即可。


五、如果网页无法安装,先补齐浏览器扩展

有些人走到这一步会发现:

  • 页面没有安装按钮

  • 开关是灰色的

  • 提示缺少浏览器集成

  • 提示 "native host connector is not detected"

这时通常不是 Ubuntu 本身的问题,而是浏览器缺少扩展支持。

你需要给浏览器安装 GNOME Shell Integration 浏览器插件。

Firefox 用户

在 Firefox 的附加组件商店里搜索:

复制代码
GNOME Shell Integration

安装后重启浏览器。

Chrome / Edge / Chromium 用户

在 Chrome Web Store 中搜索:

复制代码
GNOME Shell Integration

安装后重启浏览器。

然后重新打开刚才那个扩展页面,再试一次安装。


六、安装完成后启用扩展

扩展安装成功后,还要确认它已经启用。

你可以用两种方式查看。

方法一:图形界面查看

打开系统中的扩展管理器,名称可能是下面之一:

  • Extensions

  • GNOME Extensions

  • 扩展

找到:

复制代码
Allow Locked Remote Desktop

确认右侧开关是 开启状态(On)


方法二:命令行查看

终端执行:

复制代码
gnome-extensions list

查看系统已安装的扩展列表。

然后再执行:

复制代码
gnome-extensions list --enabled

查看当前已启用的扩展。

如果列表里能看到对应扩展,说明已经启用成功。


七、注销或重启 GNOME 会话

扩展安装后,建议执行一次下面两种操作之一:

方式一:注销当前用户再重新登录

这是最常见也最稳的方式。

方式二:直接重启机器

如果你的环境允许,也可以直接重启 Ubuntu。

这么做的目的是确保 GNOME Shell 正常加载新扩展,避免"装了但没有真正生效"。


八、测试锁屏后是否还能远程连接

扩展安装好后,就可以开始验证了。

第一步:先确认未锁屏时能正常远程

在 Windows 里按 Win + R,输入:

复制代码
mstsc

然后输入 Ubuntu 主机 IP,确认当前可以正常连接。

第二步:断开远程连接

先关闭 mstsc 窗口,但不要注销 Ubuntu 用户。

第三步:让 Ubuntu 锁屏

可以本地点击右上角菜单锁屏,或者在终端执行:

复制代码
loginctl lock-session

第四步:重新从 Windows 发起连接

再次打开 mstsc,输入同一个 IP 重新连接。

如果扩展已经生效,此时就算 Ubuntu 桌面已经锁屏,也应该仍然可以建立远程连接,而不会像以前那样直接失败。


九、为了避免误判,建议顺手关闭自动挂起

这里有一个很容易混淆的问题:

锁屏睡眠/挂起 不是一回事。

  • 锁屏:系统还在运行,只是界面被锁住

  • 挂起:系统进入低功耗,网络和图形服务可能停止

扩展解决的是"锁屏后仍允许远程连接",不是"睡眠后还能连接"。

所以建议顺手关闭自动挂起,避免你以为是扩展没生效,实际上是主机睡眠了。

执行下面命令:

复制代码
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'

如果这台机器长期插电、长期远程使用,这一步非常有必要。


十、常见问题排查

1. 扩展页面能打开,但无法安装

优先检查:

  • 是否已经安装 chrome-gnome-shell

  • 浏览器是否安装了 GNOME Shell Integration

  • 是否重启过浏览器

  • 是否是在 Ubuntu 本机图形桌面中操作,而不是 SSH 环境


2. 扩展装了,但锁屏后仍然连不上

依次检查:

检查扩展是否真的启用
复制代码
gnome-extensions list --enabled
检查机器是不是睡眠了

如果机器已经挂起,RDP 一样会失效。

检查 3389 端口是否还在监听
复制代码
ss -ltnp | grep 3389

如果没有监听结果,说明远程服务可能没有正常运行。


3. 还是不稳定

可以查看 GNOME Remote Desktop 日志:

复制代码
journalctl --user -u gnome-remote-desktop -b --no-pager | tail -n 100

如果你怀疑是 GNOME Shell 扩展本身加载失败,也可以查看:

复制代码
journalctl /usr/bin/gnome-shell -b --no-pager | tail -n 100

十一、完整操作命令汇总

如果你想一次性照着执行,下面是完整命令版:

复制代码
sudo apt update
sudo apt install -y gnome-shell-extension-prefs chrome-gnome-shell

# 查看 GNOME 版本
gnome-shell --version

# 安装扩展后,查看已安装扩展
gnome-extensions list

# 查看已启用扩展
gnome-extensions list --enabled

# 关闭自动挂起,避免主机睡眠
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'

# 手动锁屏测试
loginctl lock-session

扩展安装地址:

复制代码
https://extensions.gnome.org/extension/4338/allow-locked-remote-desktop/

十二、总结

Ubuntu 22.04 自带的 Remote Login 平时很好用,但在锁屏场景下,默认行为并不总是适合"长期无人值守远程桌面"这种需求。

如果你不想简单粗暴地关闭锁屏,而是希望:

  • 系统保持锁屏

  • 但 Windows 的 mstsc 仍然可以连接

那么安装 Allow Locked Remote Desktop 扩展,是一个非常实用的方案。

最终建议配置

对于长期远程使用的 Ubuntu 主机,我个人建议这样设置:

  • 开启 Remote Login

  • 安装 Allow Locked Remote Desktop

  • 关闭 自动挂起

  • 保留或按需设置 锁屏

  • 尽量不要把 3389 直接暴露到公网

  • 最好配合内网、VPN 或 Tailscale 使用

相关推荐
广州灵眸科技有限公司2 小时前
瑞芯微(EASY EAI)RV1126B QT GUI例程方案
linux·服务器·开发语言·网络·人工智能·qt·物联网
dingdingfish2 小时前
TLPI 第4章 练习:File I/O: The Universal I/O Model
linux·tlpi·exercise
李日灐2 小时前
<3>Linux 基础指令:从时间、查找、文本过滤到 .zip/.tgz 压缩解压与常用热键
linux·运维·服务器·开发语言·后端·面试·指令
木雷坞2 小时前
2026年了,NAS拉个Docker镜像还要3小时?技术方案PK与实测对比 🚀
运维·docker·容器
hughnz2 小时前
自动化控压钻井系统的挑战与风险
linux·服务器·网络
wanhengidc2 小时前
云服务器和物理服务器的不同之处
运维·服务器·网络·网络协议·智能手机
色空大师2 小时前
【linux开放端口-以8848为例】
linux·运维·服务器·防火墙
咋吃都不胖lyh2 小时前
在 Linux 环境下,查看、编辑并使环境变量生效
linux·运维·服务器
曼岛_2 小时前
[网络安全] Linux权限维持-隐藏篇
linux·安全·web安全·安全威胁分析