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 使用

相关推荐
私人珍藏库15 小时前
[吾爱大神原创工具] 网卡切换小工具
运维·服务器
minji...15 小时前
Linux 网络套接字编程(八)自定义实现 HTTP 服务器,HTTP 的工作模式
linux·服务器·网络·http·udp·tcp
bitbrowser15 小时前
Gemini Advanced 订阅共享排坑方案,车队共享稳定策略
运维·服务器·网络·ai
~黄夫人~15 小时前
Kubernetes 入门到实战:概念详解 + kubeadm 安装 + 节点克隆全流程
linux·运维·学习·k8s·集群
悠悠1213815 小时前
生产环境救急指南:Linux服务器忘记密码的N种解法,覆盖主流系统和云厂商
linux·运维·服务器
倔强的石头10615 小时前
kingbase备份与恢复实战(六)—— 备份自动化与保留策略:Windows任务计划+日志追溯
运维·windows·自动化
bjzhang7515 小时前
Linux曝出“核弹级”漏洞CVE-2026-31431:攻击者可瞬间提权
linux·漏洞·提权·cve-2026-31431
枳实-叶15 小时前
【Linux驱动开发】第三天:上下文核心概念全解 —— 进程/中断上下文+切换开销+TLB刷新原理
linux·驱动开发
feng_you_ying_li15 小时前
linux之FILE和文件系统(磁盘的介绍)
linux·运维·服务器
followless16 小时前
linux server中搭建questasim 10.6c & ise14.7
linux·fpga开发