我有一台安装了Ubuntu 13.10的专用服务器,还有一个使用Virtualbox和phpvirtualbox的基本安装来pipe理它的客户操作系统。 我有两个IP地址指向服务器,我想纯粹用于其中的一个虚拟操作系统,我与Ubuntu 12.04上。
这意味着每个端口等都将通过主机服务器并直接转发到该客户机操作系统。
我已经看过VirtualBox上不同的networking方法,但似乎没有为我。
如果我使用NAT和端口转发,我可以设置来宾PC只通过那个第二IP注册到那些端口的呼叫。 但是我不能使用任何标准的端口已经在主机上使用,如SSH或80,因为主机在两个IP上使用它们
我如何才能让主机操作系统将所有内容都传递给特定的客户机操作系统以获得特定的IP?
我做错了,我需要使用不同的主机types?
编辑:
从研究和意见看起来桥接应该是前进的方式,但我又卡住了,这里是我的/ 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,并将窗口中的IP设置为静态,具有相同的设置
address 2.3.4.5 netmask 255.255.255.220 gateway 2.3.4.1
但它不能拿起一个networking
最后,我已经添加到/ etc / vbox / interfaces:
vbox0 vbox br1 vbox1 vbox br1
我会build议启用桥接,而不是使用NAT。
编辑:
但是如果你使用NAT卡住,你可以使用iptables:
iptables -A FORWARD -i eth0 -d VMIPADDRESS -p tcp --sport PORTTOFORWARD --dport DESTINATIONPORT -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
另外,启用ipv4转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
编辑:
尝试这个:
# Loopback device: auto lo iface lo inet loopback # device: eth0 auto eth0 iface eth0 inet manual iface eth0 inet6 static address 2a01:4f8:161:9442::2 netmask 64 gateway fe80::1 #create bridge using additional IP auto br0 iface br0 inet static address 2.3.4.5 netmask 255.255.255.220 gateway 2.3.4.1 broadcast 2.3.4.7 bridge_ports eth0 vbox0 vbox1 up route add -net 1.2.3.6 netmask 255.255.255.220 gw 1.2.3.1 br0
我在askubuntu.com这里问了这个问题
https://askubuntu.com/questions/409862/virtualbox-forward-specific-ip-to-guest
MODS,随时删除一个或别的!
这是解决问题的方法
经过大量的反复试验,这似乎是最可靠的select…
http://wiki.hetzner.de/index.php/Netzkonfiguration_Debian/en#Bridged
桥接使用桥接configuration,数据包直接发送。 客系统performance得好像独立。 由于这使得来自外部的访客系统的MAC地址可见,所以需要通过Hetzner机器人请求虚拟MAC地址并将其分配给访客网卡。 网桥获得与eth0相同的networkingconfiguration。 eth0的configuration在没有replace的情况下被省略。
为每个额外的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, eg: 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中设置Guest OS以使用桥接networking并selectbr0,然后在高级设置中将networking适配器的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
您可以使用Port Forwarding NAT ,以便将来自主机操作系统的所有连接传递给来宾操作系统。
您将需要编辑虚拟机networking设置,将networking适配器设置为NAT和编辑端口转发选项。 在虚拟机的端口转发选项中,指定要转发的端口,
例如,
如果需要SSH端口,则指定
Name : SSH Protocol : TCP Host IP : <your host ip> Host Port : <your host SSH port> Guest IP : <your guest ip> Guest Port : <your guest port>