我刚从 Mac 切换到 Windows 10,对 WSL2 非常满意。我运行X410在 Windows 主机上,通过设置启动 WSL 中的 X11 应用程序
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }'):0.0
在启动我的程序之前。
一段时间内运行正常,但当我的电脑从睡眠状态唤醒后,X 窗口就消失了。应用程序仍然显示为正在运行ps
。
我感觉这与 X11 应用程序和 X410 服务器之间的网络连接中断有关,但我不确定。有没有人遇到过这种情况并想出了解决方法?
我使用的是 Windows 10 Insider Preview 版本 18945。
答案1
答案2
您可以使用西普拉或者X2Go作为一种解决方法(对我来说 X2Go 效果更好)。
西普拉
- 在你的 Linux 发行版(在 Ubuntu 上)上安装 Xpra
apt install xpra
。 - 在 Windows 上安装 Xpra(安装程序位于Xpra 客户端下载)
- 在 Linux 中使用以下方式启动 xpra
xpra start --bind-tcp=0.0.0.0:10000 :10000
- 在 Windows 中启动
Xpra.exe
并连接到端口10000
。
客户端将在休眠/待机后自动重新连接。即使您失去连接(可能是在登录 VPN 时),您也可以随时手动重新连接。
X2Go
apt install x2goserver
在你的 Linux 发行版( Ubuntu)上安装 X2Go 。- 在 Windows 上安装 X2Go 客户端(安装程序位于X2Go客户端下载)
- 在 Linux 上修复并启动 sshd:
您还必须在每次 WSL 重启时使用 启动 sshdsudo apt-get remove --purge openssh-server sudo apt-get install openssh-server sudo service ssh --full-restart
sudo service ssh start
。 - 在 Windows 上启动客户端,使用“会话类型:已发布的应用程序”进行连接
PS:我目前正在写一篇小博文:WSL2 中的开发环境
答案3
对此有一个非常好的解决方案:https://github.com/nbdd0121/wsld。
WSL Daemon - 为 WSL2 提供稳定的 X11 连接和时间同步
它确实做到了其他解决方案所没有做到的事情:使用 Unix 域套接字。我已经使用它好几个月了,没有出现任何问题。