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 共享。