无法在 WSL2 Ubuntu 上打开网络管理器 GUI

无法在 WSL2 Ubuntu 上打开网络管理器 GUI

我正在尝试使用命令在 Windows 11 上的 WSL2 Ubuntu 上打开网络管理器 GUI nm-connection-editor,但它显示以下错误:

** (nm-connection-editor:7104): WARNING **: 17:05:24.796: Couldn't construct the client instance: Could not connect: No such file or directory

(nm-connection-editor:7104): GLib-GObject-CRITICAL **: 17:05:24.796: g_object_set_qdata: assertion 'G_IS_OBJECT (object)' failed

(nm-connection-editor:7104): GLib-GObject-WARNING **: 17:05:24.796: instance with invalid (NULL) class pointer

(nm-connection-editor:7104): GLib-GObject-CRITICAL **: 17:05:24.796: g_signal_handlers_destroy: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(nm-connection-editor:7104): GLib-GObject-WARNING **: 17:05:24.796: instance with invalid (NULL) class pointer

(nm-connection-editor:7104): GLib-GObject-CRITICAL **: 17:05:24.796: g_signal_handlers_destroy: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(nm-connection-editor:7104): GLib-GObject-CRITICAL **: 17:05:24.796: g_object_unref: assertion 'old_ref > 0' failed

** (nm-connection-editor:7104): WARNING **: 17:05:24.796: Failed to initialize the UI, exiting...

** (nm-connection-editor:7104): CRITICAL **: 17:05:24.796: nm_connection_list_present: assertion 'NM_IS_CONNECTION_LIST (list)' failed

我怎样才能解决这个问题?

注意:我已经尝试过可能的解决方案这个问题 但仍然不起作用。

答案1

哇 - 你几乎击中了每一个WSL 限制只需一个命令!我有点夸张,但你绝对应该阅读该答案以了解更多详细信息。

这里发生了一些事情,但大多数都源于以下事实:

  • WSL 不(轻易)支持 Systemd。或者说,Systemd 不支持在 WSL 下运行,因为它只有在 PID1 时才会运行。请参阅这个 Ask Ubuntu 答案这个超级用户的回答我深入研究了这个特定的主题。

  • nm-connection-editor是 Gnome 的一个组件。Gnome 依赖于 Systemd。

  • 在我看来nm-connection-editor,与许多其他 Gnome 组件一样,它使用 Dbus 与其他组件交互。DBus 通常在启动时由 Systemd(或另一个进程管理器)启动。可以在没有 Systemd 的情况下运行它,但它在 WSL 中默认不运行。

即使我们解决了所有这些问题:

  • 网络管理器在 WSL 中通常不会那么有用,因为您无法更改发行版中的默认网络。WSL2 实际上是一台“托管”虚拟机,我们作为用户无法访问。正是该虚拟机控制着网络。您的 WSL2分配作为容器运行里面那个虚拟机。

    尝试在 WSL 中使用网络管理器就像尝试在 Docker 容器中使用它一样——这可能没有多大意义。您没有提到想要使用网络管理器的用例,但如果您需要替代方案,则可能需要第二个问题。

综上所述,在 WSL 下运行网络管理器是可行的,只是相当复杂。请参阅这个 Ask Ubuntu 答案有关我在 Ubuntu 20.04 下使用的方法,通过 Xrdp 让 Gnome 在 WSL 下运行。

请注意,在 Jammy (22.04) 上,还有一些其他问题需要解决,因为该gnome-desktop软件包在 WSL 下引入了一些其他有问题的 Systemd 单元 - 请参阅Github 上的这个 Genie 问题

相关内容