我用过无人机器多年来连接我的 2 台 Linux 笔记本电脑。客户端计算机 A 始终连接到服务器计算机 B 中的现有 X 会话,并在 A 和 B 中显示该会话。但是,最近它总是在 B 上创建一个新会话,同时仅在 A 上显示它。据我所知,我还没有做过任何值得这样做的事情(安装、删除、更改等)。
连接后,我最近有时也会收到有关密钥环或不允许控制网络的警告,因此我怀疑是 polkit 问题。如果我在仅在 A 中显示的 B 会话中打开 Web 浏览器,则该浏览器仅在 B 上的现有 X 会话中打开(这是我可以与那里的 X 会话进行交互的唯一方式)。因此,似乎有什么东西阻止我通过 Nomachine 访问网络,而是创建一个新的无网络 X 会话。
我做了什么
要摆脱钥匙圈烦恼:
mv /home/j/.local/share/keyrings/login.keyring /home/j/.local/share/keyrings/login.keyring.bak
确保网络控制:
- 创建
/etc/polkit-1/localauthority/50-local.d/50-allow-network-manager.pkla
:
[Network Manager all Users]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.network-control
ResultAny=yes
ResultInactive=yes
ResultActive=yes
(也尝试过带有 和ResultAny=no
的版本ResultInactive=no
)
- 注释掉以下
allow_any
值
<action id="org.freedesktop.NetworkManager.network-control">
<_description>Allow control of network connections</_description>
<_message>System policy prevents control of network connections</_message>
(这是我有时收到的消息)/usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
:
<defaults>
<!-- <allow_any>auth_admin</allow_any>-->
<allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
这抑制了“系统策略阻止网络连接的控制”消息,并暂时修复了密钥环 nag(login.keyring
重新创建,有时再次触发 nag),但并没有使我能够连接到 B 上的现有 X 会话。比如说,我已经重新启动了两台机器很多次。关于如何进行的任何想法?
答案1
我解决了这个问题,但有点不确定如何解决。这就是我所做的:
将两台机器上的所有软件包和Nomachine升级到最新版本(它们是不同的,但这不会干扰它们的使用(直到它们工作))。重新启动。仅此一点就没有给我带来任何好处。
查看了服务器的配置文件(位于 B 上)
/usr/NX/etc/server.cfg
,其中包含一些可疑的键值。进行了一些更改,包括
EnableNetworkBroadcast 1
CreateDisplay 0
WebAccessType unrestricted
重新启动。再说一次,什么也没有。几天来我“忘记”了整个事情,当我启动计算机时——砰!有效。
我对这一切有一些理论。第一个明显的问题是计算机(可能是 B)需要多次重新启动。可能是,第一次重新启动后的关机修复了 B 上的一些设置,然后它就正确重新启动了。也有可能(但更不可能),在其中一次重新启动时断开网络电缆会刷新一些损坏的设置,然后一切正常。还有一种很小的可能性是我在更改 B 后没有重新启动/usr/NX/etc/server.cfg
,但例如注销了。
对于造成混乱的根本原因,我有三种理论:
当 B 崩溃时(偶尔会发生),Nomachine 的服务器设置在下次重新启动时被损坏/覆盖。
在 Nomachine 中,我看到了一个对话框“无法检测服务器 xxxxx 上的显示。始终为此服务器创建新的显示吗?”。也许我无意识地点击了Yes这个问题,这可能解释了无法连接到现有会话的原因和
CreateDisplay 1
(不过/usr/NX/etc/server.cfg
,并不能解释无法连接到互联网的情况)。B 的 SSD 有一些问题(我的 Linux 分区今天在我启动之前没有启动
fsck -fy
)。这也可能损坏了某些东西。