如何在 Virtualbox 上从 Arch Linux 转发端口?

如何在 Virtualbox 上从 Arch Linux 转发端口?

我想跑Visual Studio 代码服务器(代码服务器)在 Windows 11(主机)下的 Arch Linux VM(Virtualbox)上。它运行良好,我可以连接到 Arch 上的地址。但我的主要目标是使用权它在 Windows 端,所以它code-server存在于 Arch 上,但我从 Windows 访问它。

经过一番搜索,我找到了一些文章来解释转发端口在 Virtualbox 中。我按照他们进行设置。这是我在 Virtualbox 中的网络配置:

适配器配置

NAT 端口转发

在 Arch 上,我code-server使用--bind-address参数将其指向:2704运行。它再次运行,正如预期的那样。我能够从 Arch 访问它,但不能在 Windows 上访问。访问了127.0.0.1:7207,但显示错误ERR_CONNECTION_RESET或类似内容。我检查了防火墙,Virtualbox 和浏览器在公共和专用网络下被允许访问。

code-server命令

127.0.0.1:2704在 Arch 上

127.0.0.1:7207在 Windows 上

谢谢。如果您需要更多信息,请告诉我。

答案1

好的,我设法使用“桥接适配器”(感谢@John 的建议!)并2704使用 SSH 将端口转发到我的本地。

  1. 在虚拟机配置中将网络适配器更改为“桥接适配器”

  2. 启动code-server(也可以绑定到另一个端口)

  3. 使用ip addr命令获取虚拟机的 IP 地址

  4. 在主机上打开终端/Windows 终端,并发出:

    ssh -N -L CodeServerPort:127.0.0.1:AnyPortYouWantToUse user@VM-IP

    例如,对我来说:

    ssh -N -L 2704:127.0.0.1:2704 [email protected]

    因此,它的作用是使用 SSH 将 VM 的 2704 端口转发到 127.0.0.1:2704(端口 2704 上的本地主机)。

然后您就可以通过浏览器访问它127.0.0.1:2704

参考:https://coder.com/docs/code-server/latest/guide#port-forwarding-via-ssh

如果我在这里犯了任何错误,请纠正我,以便新手不会感到困惑:)

相关内容