Virtualbox 将特定 IP 转发给客户机

Virtualbox 将特定 IP 转发给客户机

我有一台专用服务器,已Ubuntu 13.10安装并进行了基本安装,用于Virtualbox管理phpvirtualbox其上的客户操作系统。我有两个指向该服务器的 IP 地址,我想将其中一个 IP 地址专门用于我在Ubuntu 12.04其上安装的虚拟操作系统。

这意味着每个端口等都将通过主机服务器并直接转发到该客户操作系统。

我研究过 VirtualBox 上的不同网络方法,但似乎都没有适合我。

如果我使用 NAT 和端口转发,我可以将客户 PC 设置为仅通过第二个 IP 注册对这些端口的调用,这很好。但是,我无法使用主机 PC 上已在使用的任何标准端口,例如 SSH 或 80,因为主机 PC 在两个 IP 上都使用它们

我怎样才能让主机操作系统将所有内容传递到特定 IP 的特定客户操作系统?

我做错了吗?我需要使用不同的托管类型吗?

编辑:

从研究和评论来看,桥接应该是前进的方向,但我再次陷入困境,这是我的 /etc/network/interfaces 文件。

# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   1.2.3.4
  broadcast 1.2.3.5
  netmask   255.255.255.200
  gateway   1.2.3.1
  # default route to access subnet
  up route add -net 1.2.3.6 netmask 255.255.255.220 gw 1.2.3.1 eth0

iface eth0 inet6 static
  address 2a01:4f8:161:9442::2
  netmask 64
  gateway fe80::1

  #create bridge using additional IP
  auto br1
    iface br1 inet static
    address 2.3.4.5
    netmask 255.255.255.220
    gateway 2.3.4.1
    broadcast 2.3.4.7
    bridge_ports br1 vbox0 vbox1

该服务器是 Hetzner EX,带有一个位于同一 MAC 地址上的附加 IP(如果需要,我可以从他们那里获取不同的 MAC 吗?)

使用上述设置,我将 Win7 客户操作系统设置为桥接至 br1,并将 Windows 中的 ip 设置为静态,设置方法相同,即

address 2.3.4.5
netmask 255.255.255.220
gateway 2.3.4.1

但它无法接入网络

最后我添加到/etc/vbox/interfaces:

vbox0 vbox br1
vbox1 vbox br1

答案1

经过大量的反复试验后,这似乎是最可靠的选择......

http://wiki.hetzner.de/index.php/Netzkonfiguration_Debian/en#Bridged

桥接 使用桥接配置,数据包直接发送。客户系统表现得像独立的一样。由于这使得客户系统的 MAC 地址从外部可见,因此需要通过 Hetzner Robot 请求虚拟 MAC 地址并将其分配给客户网卡。桥接获得与 eth0 相同的网络配置。eth0 的配置被省略而无需替换。

为每个附加 IP 获取单独的 MAC 地址

然后将其用于主机 /etc/network/interfaces..

# remove or disable configuration for eth0
#auto eth0
#iface eth0 inet static
#
auto  br0
iface br0 inet static
 address (Main IP)
 netmask (like eth0, e.g: 255.255.255.254)
 gateway (same as that for the main IP)
 bridge_ports eth0
 bridge_stp off
 bridge_fd 1
 bridge_hello 2
 bridge_maxage 12

在 virtualbox 中设置客户操作系统以使用桥接网络并选择 br0,然后在高级设置中将网络适配器的 mac 设置为 Hetzner 为新 IP 提供的 MAC 地址(无需任何 :)

然后在客户操作系统中使用这个..

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
#iface eth0 inet dhcp

iface eth0 inet static
address (ADD IP 1)
broadcast (FOR ADD IP 1)
netmask (FOR ADD IP 1)
gateway (MAIN IP)
dns-nameservers 8.8.8.8

答案2

从主机中删除 IP 地址,然后将相同的地址分配给桥接接口

答案3

我按照这些说明操作,但最初收效甚微 - br0 没有出现在我的 Hetzner 盒子上。

我发现解决方案是:

sudo apt-get install bridge-utils
brctl addbr br0

您可能还需要删除中的默认条目/etc/udev/rules.d/70-persistent.net.rules

当然,您应该看到 Hetzner(在机器人中)为您分配了什么 Mac 地址,然后:

VBoxManage modifyvm <VMName> --macaddress1 xxxxxxxxxx

相关内容