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