如何将我的 Windows 11 笔记本电脑设置为可以远程运行命令的服务器?

如何将我的 Windows 11 笔记本电脑设置为可以远程运行命令的服务器?

有问题的笔记本电脑有一个 GPU,因此不便于携带,但我想使用 GPU 在我的另一台没有 GPU 的笔记本电脑上训练神经网络,包括在 Windows 11 上运行的 Unity ML-Agents。

我读过这个:https://dev.to/composite/a-tiny-but-perfect-guide-how-to-install-wsl-2-on-windows-server-2022-1a8f

并理解其中的一些内容,但其余部分则需要用 Google 来查找。

例如,现在我正在训练 Unity ML-Agent 使用 PPO 算法驾驶赛车,我通常会调用mlagents-learn --run-id=April9_current_timeWSL Ubuntu shell,但我想在上传更新的 .yaml 或 C# 脚本后远程执行此操作。

我跑去lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.1 LTS
Release:        22.04
Codename:       jammy

答案1

Windows Server(链接中提到)可能不是您真正想要的。Windows Server 是 Windows 的高度专业化版本,专为托管 Microsoft Exchange、Active Directory、企业级虚拟化或 Web 托管等内部服务的企业 IT 部门而设计。

由于其专业化,Windows Server 最初甚至不支持 WSL。即使是现在,我也不确定最新的 WSL 版本是否可以在其上运行。无论如何,让我们将 Windows Server 视为您特定要求的干扰因素。

有问题的笔记本电脑有一个 GPU,因此不便于携带,但我想使用 GPU 在我的另一台没有 GPU 的笔记本电脑上训练神经网络,包括在 Windows 11 上运行的 Unity ML-Agents。

你面临的第一个挑战与任何您想要远程访问的服务——GPU 笔记本电脑的网络路由。当然,大多数计算机不能(也不应该)直接从公共互联网访问。

要从远程系统访问 WSL 上的 Ubuntu,你需要两样东西:

  • A网络通往 GPU 笔记本电脑系统的路径
  • 一旦连接,即可在该系统上运行命令的方法。

第一个通常是最大的障碍,尤其是在安全方面。这首先取决于您的台式机如何访问互联网。如果您可以通过 VPN 访问笔记本电脑所在的普通网络,那么这是一种可能性,而且可能比大多数其他方法更安全。

我曾经在另一个 WSL 问题答案中看到过另一种解决方案,恩格罗克。我自己从未尝试过这个。请注意 ngrokRDP 帮助(下文将介绍 RDP)- 他们建议您只授予特定网络范围的访问权限,以便限制潜在的安全风险。如果您要开放系统以供整个互联网进行远程访问,那么您就需要设置一个非常强的密码,这一点也不言而喻。

一旦你至少可以抵达要从另一台笔记本电脑上获取 GPU 系统,您需要决定使用哪种协议进行远程访问。该文章中讨论的两种方法仍然适用。但是,有些信息有点过时了:

  • 远程桌面:我目前首选的解决方案是远程桌面 (RDP)。只要您拥有 Windows Pro、Windows Education 或更高版本(换句话说,不是Windows Home),您可以通过系统->远程桌面设置。然后,您可以使用远程桌面连接应用程序。其他操作系统也有客户端。

    这样做的好处是,无论用户是否登录物理桌面,您都可以访问系统。还有其他远程桌面解决方案,例如 VNC。

  • SSH:另一个解决方案是通过 SSH 进入在 WSL 下运行的 Ubuntu。这说实话用过的在早期版本的 WSL 中更容易。但是,将 WSL 作为应用程序运行意味着您无法开始通过 SSH 访问 WSL。这意味着您必须已经登录 GPU 笔记本电脑的桌面并启动 Ubuntu 并运行 SSH 服务。例如,如果系统重新启动,而 Ubuntu 未运行,那么您将无法使用 SSH。

    要配置 SSH,请参阅我最近在这里回答了这个问题

相关内容