我有 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' 标签,设置 '附于' 到 '桥接适配器“”。
答案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
。您可以对任何端口执行此操作,它将工作相同。
尽管这需要一些额外的工作,但即使在安全的网络上也不应该禁用防火墙。