Ubuntu远程桌面总掉线?我给你指两条活路

山高自有客行路,水深自有渡船人。在折腾Linux桌面的道路上,我们总是痛并快乐着。针对Debian分支系统,我们介绍过Ubuntu开启远程桌面(如何通过MSTSC连接Ubuntu的远程桌面?)、Kali开启远程桌面(配置Kali通过MSTSC连接远程桌面)。

后来,我们又通过对Ubuntu 24.04系统原生支持的远程功能进行分析(原生支持真的好用吗?Ubuntu 24.04桌面共享vs远程登录全解析),发现之前用的比较多的算是【远程登录】,此时GNOME桌面环境会在后台创建一个无头(Headless)的Wayland虚拟桌面会话,专门供远程使用。优点是它不依赖物理显示器,适合没有显示器的主机、服务器、尤其是云主机使用;缺点也很明显,那就是一旦客户端断开,无论是主动关闭窗口,还是网络抖动导致的掉线,当前的桌面会话就会直接中断,相当于强制注销,所有未保存的工作都会灰飞烟灭,桌面状态不会被保留。。

据悉,这实际上是Ubuntu 24.04搭载的桌面环境(GNOME 46)的一个已知架构限制,缺乏会话持久化功能,它并不能像Windows的RDP那样可以在后台挂起并等待我们重新恢复连接(别再求管理员账号了!一篇文教你配置Windows Server多用户RDP权限)。官方已经在较新的Ubuntu 24.10中修复了这个问题,也就是GNOME 47版本中加入了会话持久化功能,但Ubuntu 24.10不是LTS版本,其生命周期已经在2025年7月彻底结束。不过不用担心,预计在2026年4月23日左右,新版本的Ubuntu 26.04 LTS就要正式发布了,这些令人头疼的RDP远程登录细节体验问题,届时应该都会得到彻底的官方修复。

所以,我这段时间一直在用的,都是【桌面共享】方式,不过也有一些小瑕疵。

第一个问题:还是那个烦人的随机密码问题。

在远程桌面共享时,莫名其妙的就会连接中断,再连就连不上了,提示身份验证错误。

原因也很简单,那就是我们手动设置的登录密码被系统重置为随机密码了。见鬼了,手动设置的密码为什么会被重置呢?

经过了解,这在Ubuntu 24.04中是非常正常的现象。确切地说,这是GNOME桌面环境的一种安全机制导致的已知行为,正可谓成也萧何、败也萧何,只是我们“使用不当”。

问题原因就是我们偷懒了,如果我们开启了系统用户的自动登录,或者系统重启、休眠唤醒后密钥环没有被正确解锁,就会触发这个问题。

这是因为Ubuntu 24.04默认使用gnome-remote-desktop来提供桌面共享服务,当我们手动设置桌面共享密码时,这个密码会被强加密并保存在系统的GNOME密钥环中。而开启系统自动登录时,由于绕过了手动输入密码的步骤,导致GNOME密钥环一直处于锁定状态。

此时,gnome-remote-desktop服务在后台启动,并尝试去读取我们之前设置的固定密码,但因为它没有权限解锁密钥环,所以读取失败。为了保证远程服务可用且防止未经授权的访问,系统就会触发默认的回退机制,自动生成一个新的随机密码。

怪不得我在远程桌面设置时,总是会是不是的卡住,如果弹出认证授权界面就不会卡,原来卡住的不是设置,是认证授权对话框!

那我们要怎么解决这个问题?

最标准、也是最安全的方法就是关闭自动登录,适用于方便在重启或锁定后手动输入密码的场景,直接关闭自动登录即可。在设置的系统设置中,关闭用户下的自动登录选项。

这样,每次开机或锁定后,手动输入密码登录时,系统会自动解锁密钥环,远程桌面就能顺利读取我们设定的固定密码了。

如果说这种安全的标准做法你感觉麻烦,而且确实需要机器自动开机登录,并随时准备被远程连接。如果服务器仅用于内网环境,那我们可以激进一点,将默认密钥环的密码设为空,适合内网或测试环境。

注意:这会降低本机的局部安全性,保存在登录密钥环里的所有凭据(浏览器保存的密码、Wi-Fi密码等),都将变为明文可用状态,建议仅在防火墙保护良好的局域网内使用。

首先,我们打开桌面应用菜单,在【工具】文件夹中打开【密码和密钥】工具。

左侧有个密码认证的默认密钥环,可以看到我们保存的一些密码数据。

这里面就包含我们要使用的远程桌面密钥。

接下来,我们右击【默认密钥环】,选择【更改密码】。

第一步,系统会提示我们输入当前的旧密码,也就是系统登录密码以验证身份。

第二步,会要求我们输入新密码。在输入密码和确认密码这里,我们什么都不要填,直接留空并点击继续。

此时,系统会跳出安全警告,提示使用空白密码,所有密码将存储为未加密状态,点击【继续】确认。

接下来,我们重新进入系统的桌面共享设置,手动指定一次固定密码。之后无论怎么重启,密码都不会再随机变化了。

当然,如果你更习惯通过命令行进行配置管理,可以直接使用以下命令设置RDP桌面共享密码:

grdctl rdp set-credentials tt Tietou@2026.
注意,gnome-remote-desktop是一个用户级服务,而不是系统级服务。因此,运行命令时必须以当前登录桌面的普通用户身份运行;如果加了sudo,或者直接使用root账号运行,密码会被写进root用户的密钥环里,此时桌面共享依然无法读取,导致设置无效。

不过,我们可以让root用户调用普通用户身份执行命令:

sudo -u tt XDG_RUNTIME_DIR=/run/user/1000 grdctl rdp set-credentials tt Tietou@2026.

同时,通过grdctl命令行设置密码,本质上和我们在图形界面的设置里输入密码是一样的,它依然是把密码存进当前用户的GNOME密钥环中。如果开启了自动登录,且没有把密钥环的密码清空,系统重启后,密钥环处于锁定状态,我们通过命令设置的密码依然会失效,系统还是会生成随机密码。

综合来看,依旧是最推荐关闭自动登录,在保证绝对安全的前提下,可以将默认密钥环的密码设为空。

好,解决了密码问题,要另外一个问题就得上点科技了。

【桌面共享】的本质是物理屏幕内容的实时镜像,也就是说,系统必须要有一个处于点亮并渲染状态的物理屏幕,远程端才能看到画面。如果系统判定屏幕息屏或休眠了,渲染就会停止,远程连接就会断开。

如果一直亮屏,费电不说,也存在一定的隐私安全隐患,容易暴露。你在远程操作什么,机器旁边的人看得一清二楚,毫无隐私可言。

这个时候,NoMachine客户端的优势就显示出来了,他的高级设置中有一个选项:连接时关闭服务器显示器。当我们远程登录之后,物理屏幕就会被强制黑屏且锁定鼠标键盘,进入隐私模式。不仅省了电,还能防止了别人在物理机旁边偷窥我们的操作。

不过,NoMachine客户端是一个私有协议,并不能通过mstsc进行连接。

好在他的系统终端适配比较齐全,就跟向日葵一样,Windows、Mac、Linux、iOS、Android全平台覆盖,甚至连ChromeOS都有。

配置时,即可选择内网方式,直接使用客户端+内网IP地址:端口进行连接。

也可以选择接入NoMachine网络,实现公网访问。

折腾Linux的乐趣,就在于见招拆招。Ubuntu 24.04的原生桌面共享就像一把双刃剑:配置简单,但受限于密钥环机制,稳定性稍欠火候。

如果你追求极致的轻量化和免安装,原生【桌面共享】配合清空密钥环密码足以应付日常;如果你对隐私、省电以及会话持久化有强需求,那么直接上NoMachine客户端,绝对是当下最省心的选择。

好了,工具和选项都给你了,你会怎么选呢?

声明:来自铁军哥,仅代表创作者观点。链接:https://eyangzhen.com/7342.html

铁军哥的头像铁军哥

相关推荐

添加微信
添加微信
Ai学习群
返回顶部