Virtual Box桥接网络和端口转发


1

我有个问题。 这是我的网络图。 enter image description here

  1. 我有WIFI路由器连接到互联网,我从我的ISP订购静态IP,所以我可以通过互联网访问我的本地PC。
  2. 我的路由器创建网络192.168.0.0/24
  3. 我有一些端口转发到我的本地PC服务器(192.168.0.101) enter image description here
  4. 我在本地PC上安装了虚拟盒
  5. 有两个节点通过vagrant创建和维护,但我们对第一个节点感兴趣。
  6. 每个VM有两个NIC,第一个是用于Vagrant通信的NAT,第二个是通过本地PC接口enp3s0的桥接适配器。
  7. 所有节点都具有在路由器DHCP设置中绑定的特定MAC地址,以便为它们提供静态IP(192.168.0.110和192.168.0.111)
  8. 一切都在本地网络内部工作,节点接收正确的IP地址,我可以通过本地网络访问任何节点端口
  9. 我的ip 192.168.0.110节点运行Apache服务器,在本地网络内运行正常。
  10. 我想从外部访问我的这个节点apache服务器,所以我将外部端口8888转发到本地端口80到IP 192.168.0.110的机器,如上面的屏幕截图所示。

但问题是我无法从外部访问节点apache。连接超时或重置。我试图使用Wireshark捕获流量,我可以看到以下错误。

enter image description here enter image description here 有可能让这个工作吗?或者只有一种解决方案 转发端口到192.168.0.101 PC使用带端口转发的NAT转发到节点的数据包?

请帮忙解决这个问题。 谢谢。

Answers:


0

我意识到这不是你正在寻找的答案,但我把我的大脑搁置了一天以上并得出了这个结论。 它应该工作,而不是 。我是Linux专家,精通网络。其他论坛说你做得对,我同意,并且应该有效。我自己在两个完全不同的网络上尝试了完全相同的设置,它只是不起作用。

您必须在桥接适配器旁边使用NAT适配器。在NAT上设置前向端口,并将主机IP设置为0.0.0.0。

在您的路由器中,将端口转发到HOST IP地址,而不是客户端VM桥接IP。因此,根据您的示例端口将8888转发到SAME PORT 8888上的HOST IP地址。

然后在Vagrant中,NAT端口转发将如下所示:

config.vm.network "forwarded_port", guest: 80, host_ip: "0.0.0.0", host: 8888
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.