我确信这个问题之前已经得到解答,但我似乎找不到可行的答案。
我在 Windows 10 Pro 计算机上托管的 VirtualBox 5.2.20 中运行着一个 CentOS 7 虚拟机。我在客户机上设置了一个 Apache Web 服务器,并希望它可以通过互联网访问(例如,通过端口 80 提供静态网页)。但是,我希望我的主机和 LAN 中的其他设备与客户机隔离,以防客户机受到攻击。
目前,我在 VB 中配置了两个网络适配器,一个 NAT 用于为客户机提供出站互联网访问,另一个主机专用适配器用于本地测试 Web 服务器。目前没有设置端口转发,因此只能从我的主机访问客户机。我的理解如下:
- 如果我使用带端口转发的 NAT,我还必须在主机上打开所需的端口,这使其容易受到潜在攻击(我想避免这种情况)
- 如果我使用桥接模式,我可以将端口直接转发到我的客户机,但它也可以访问我的 LAN 上的其他主机。如果我的客户机被黑客入侵,他们就会面临风险。
我的理解正确吗?如果正确,我该如何设置网络以仅向我的客户机启用端口转发,而不将我的 LAN 的其余部分暴露给它?
答案1
您需要将端口转发到您的计算机,但您可以将该端口直接指向虚拟机使用的网络接口,以便虚拟机保持隔离。这可能适用于仅主机接口,因此虚拟机将无法与网络的其余部分通信。
要使用的命令将如下所示,在提升的命令提示符中运行,假设仅主机接口在 192.168.234.0/24 上定义:
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.0.0.1
connectaddress=192.168.234.1 connectport=80 protocol=tcp
我没有 VirtualBox,所以无法进行实验;你必须自己做那部分。
更多信息请参阅文章 Windows Netsh 接口 Portproxy。