如何从在 Virtualbox 中运行的 Windows 访问在 Ubuntu 上运行的 localhost:8080?

如何从在 Virtualbox 中运行的 Windows 访问在 Ubuntu 上运行的 localhost:8080?

我有 Ubuntu 机器的 IP 地址,我想从我的虚拟 Windows 机器访问在 Ubuntu 本地主机上运行的应用程序。有办法吗?输入 [inet 地址]:8080 不起作用。

答案1

Windows 有它“自己的” localhost,所以你必须“帮助”它找到 Ubuntu 的。

在虚拟机中,转到此 IP http://10.0.2.2/,它应该可以工作。您可以编辑 Windows 主机文件以指向localhost该 IP,这样您就不必记住它了。

在:C:\Windows\System32\drivers\etc\hosts

添加:

10.0.2.2 localhost

答案2

您可以将虚拟机设置为使用桥接连接。这样虚拟机将获得自己的 IP 地址,并且您应该能够连接到主机。

  1. 右键单击虚拟机(当它未运行时)
  2. 选择 '设置
  3. 选择 '网络
  4. 在下面 '适配器 1' 标签,设置 '附于' 到 '桥接适配器“”。

答案3

首先,确保 Web 服务器进程正在运行。localhost:8080在 Ubuntu 机器上的浏览器窗口中输入。如果您获得了预期的页面,请继续下一步,否则启动 Web 服务器进程并重试。

其次,确保两台机器都在同一个子网络上。即类似于192.168.x.y/255.255.255.0如果192.168.x.z/255.255.25.0不是,请进行必要的调整并继续下一步。

第三,检查您的 ubuntu 服务器上是否正在运行防火墙。如果是,请检查所需端口是否打开(8080就您而言)。如果您不想向公共访问开放端口,您可以配置一条规则以仅接受来自本地子网的流量。

编辑:步骤 0. 按照@Eeroz 的回答建议进行设置

答案4

如果您确定是您的防火墙,我建议添加此规则,而不是禁用防火墙:

sudo ufw allow 8080

完成后你应该运行:

sudo ufw status numbered

找出括号里的数字。假设它是[ 1][ 3]

sudo ufw delete 1 3

然后,如果您在虚拟盒上,您将导航到http://10.0.2.2:8080如果您的网络设置为NAT。您可以对任何端口执行此操作,它将工作相同。

尽管这需要一些额外的工作,但即使在安全的网络上也不应该禁用防火墙。

相关内容