带有 Unix 域套接字的 Cygwin/X 和适用于 Linux 的 Windows 子系统

带有 Unix 域套接字的 Cygwin/X 和适用于 Linux 的 Windows 子系统

WSL 中的图形应用程序(例如 gedit 或 xterm 等)可以通过 TCP 连接到 Cygwin/X。 自从当前 WSL(部分)支持 AF_UNIX,是否可以通过 Unix 域套接字连接到 Cygwin/X?

sudo mount --bind /mnt/c/cygwin64/tmp/.X11-unix /tmp/.X11-unix或者sudo ln -s /mnt/c/cygwin64/tmp/.X11-unix /tmp/在 WSL 下似乎不起作用...DISPLAY=:0 xterm仍然报告xterm: Xt error: Can't open display: :0

答案1

Cygwin 模拟 Unix 套接字的方式是生成一个假的套接字文件并通过 TCP 执行握手,如下所示此处概述。这些伪套接字文件不是真正的 Unix 套接字文件,WSL 无法使用,因为它对其格式一无所知。

Windows 本身现在支持AF_UNIX套接字,但这些不能同时被 Windows 和 Linux 软件使用。如果你能说服 Cygwin 使用真实AF_UNIX套接字而不是其虚假套接字格式,并且你在 Windows 端没有任何其他客户端,那么你可能能够让事情顺利进行,但我持怀疑态度。

据我所知,WSL 2 不太可能有帮助,因为在那种情况下,套接字完全在 Linux 本身中,不会与 Windows 共享。

相关内容