我在一台 Linux 机器上运行了多个 Windows VBox。这台 Linux 机器设置了 20 个静态真实 IP 地址,全部位于 eth0 上。VBox 配置为使用 NAT,它使用 Linux 机器上设置的默认网关 IP 地址来访问互联网。问题就在这里。
我希望每个 VBox 从 20 个 IP 池(随机或分配)中使用不同的 IP 来访问 Internet,而不是使用 Linux 机器上设置的默认网关。
有什么想法吗?
我尝试过但没有效果的方法是使用 VBoxManage 按照 VBox 文档来处理这个问题...
VBoxManage VBoxInternal/设备/pcnet/0/LUN#0/配置/http/BindIP“203.203.203.203”
那不管用。
我想我可能必须在 Linux 机器上使用 iptables 命令来配置它,以便 ip 路由链对所有传出流量使用随机 IP,或者多个默认网关或类似的东西。
更新 1:因为这是租用的服务器,所以我无权访问路由器。Windows VBox 使用的 DHCP 由在 Linux 上运行的 VirtualBox 应用程序安装和管理,该应用程序仅适用于 VBox。
更新 3:raerek 提供了使用桥接而不是 NAT 的解决方案。我发现设置桥接网络并不像“只需从下拉列表中设置”那么简单。我可能需要在 Linux 机器上安装或配置驱动程序。在我仍在检查它的同时,任何保留 NAT(有效)并仍然能够使用池中的 IP 的解决方案都将受到欢迎。
答案1
如果我理解正确的话,您不需要为 Linux 主机分配 20 个 IP,因此您最好使用桥接网络而不是 NAT,并将不必要的 IP 直接分配给运行 Win 的虚拟机。因此从外部看来,您有一台 Linux 计算机和一些 Windows 计算机,它们都在同一个网段上。只有以太网层会知道它们是一台,从 IP 层来看,它们看起来是具有不同 IP 的不同计算机。
答案2
而不是在 Linux 主机上设置 20 个 IP 地址....您是否尝试过在路由器上设置 DHCP...这样 Linux 主机上的任何 Windows 客户机都会自动获取一个 IP 地址...?
答案3
为了保护 Windows 机器免受桥接网络中传入流量的侵扰,请使用 设置 netfilter 防火墙iptables
,其中规则包含 Windows IP 地址或接口名称(eth0:0、eth0:1 等等)。