给VM一个自己的IP地址

我有一个专门的服务器运行在托pipe服务提供商的Ubuntu。 我已经configuration了OpenVPN和VirtualBox,并使用VirtualBox安装了Windows 7虚拟机。 该服务器具有以下接口:

  • 接口eth0被分配公共IP地址
  • 环回接口
  • Tun接口从OpenVPN

让Win7-VM从VM-Range(10.8.0.0/24)获得IP地址是否可以实现? 我希望这是可能的,以便系统是可以通过公共IP访问,如果我连接到VPN访问虚拟机,例如IP 10.8.0.7

我听说过networking桥接,并已经尝试了几种configuration,但是当我这样做,使整个服务器无法访问。 也许有人可以解释我,如果它是现实的,哪种方法是最合适的。

谢谢

将networking适配器设置更改为桥接应该使用第一个可用IP地址将您的虚拟机与主机相同。 从现在开始,您可以像使用物理机器一样configuration静态IP,也可以使用DHCP将虚拟机的MAC地址固定为IP地址(例如使用路由器或名称服务器)。

网络配置在虚拟机

希望这可以帮助!

通常情况下,解决scheme可能是使networking上的虚拟机可以从主机访问,并使用外部networking和虚拟networking之间的路由。

这给你最多的控制权,而对外部网不可见。 这避免了例如虚拟机进入主机提供商networking的问题和类似的问题。

一个示例configuration将例如使用iptables:

 iptables -t nat -I PREROUTING -i external-net -p tcp --dport 80 -j DNAT --to-destination win7vm # route http traffic into the vm iptables -t nat -I POSTROUTING -i vmnet-interface -j MASQUERADE # replace vm-ip with external ip iptables -A FORWARD -j ACCEPT echo 1 >/proc/sys/net/ipv4/ip_forward 

您的虚拟机需要使用vmnet-interface上的主机作为(默认)网关,但是如果您没有更改多个networking设置,则这应该是默认值。

当你设置路由,你可能想要添加更多的iptables规则,即防止其他接口之间的转发。

您需要在OpenVPNconfiguration中使用tap设备和模式bridge

然后你需要build立一个网桥,在OpenVPN中configurationtap设备,虚拟内部networking适配器作为成员。

您需要将主机IP地址分配给主机上的网桥接口。

在此之后,您的OpenVPN隧道和虚拟机networking适配器在同一个子网中,一旦连接到OpenVPN服务器,您将连接到同一个networking。

您必须离开具有公共IP地址的接口,因为它现在是。