答案1
这是您当前的网络:
╔══════════════╗ ╔════════════════════╗
║VM @ 10.0.2.15║───║Host @ 192.168.1.122║───[Internet]
╚══════════════╝ ╚════════════════════╝
这是您要执行的操作(将路由器上的端口 80 转发至 10.0.2.15):
╔══════════════╗ ╔════════════════════╗
║VM @ 10.0.2.15║───║Host @ 192.168.1.122║───[Internet]
╚══════════════╝ ╚════════════════════╝ │
└─────────────────────────(Port 80)──────┘
这是行不通的,因为路由器不知道 10.0.2.15 位于 192.168.1.122 后面。
相反,您需要执行以下操作(将路由器上的端口 80 转发到 192.168.1.122,它知道 10.0.2.15):
╔══════════════╗ ╔════════════════════╗
║VM @ 10.0.2.15║───║Host @ 192.168.1.122║───[Internet]
╚══════════════╝ ╚════════════════════╝ │
└───(Port 80)────┘
然后执行以下操作(现在 192.168.1.122 正在获取流量,将其发送到 10.0.2.15):
╔══════════════╗ ╔════════════════════╗
║VM @ 10.0.2.15║───║Host @ 192.168.1.122║───[Internet]
╚══════════════╝ ╚════════════════════╝ │
└───(Port 80)────┘ └───(Port 80)────┘
答案2
正如用户所述,您需要将流量从路由器转发到 VM 主机(192.168.1.122),从那里我推荐以下两个选项之一:
1:将虚拟机配置为使用网络桥接,该网络桥接将使用 DHCP 从路由器获取 IP 地址,并且可以像本地网络上的任何其他设备一样访问。(然后,您可以将流量转发到虚拟机的 192.168.1.0/16 中的 DHCP 分配地址)
2:在您的虚拟机管理程序上配置到您的虚拟机的端口转发。
示例配置: https://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/
根据您用于虚拟化的内容,它会略有不同,但相同的概念适用于所有虚拟机管理程序。