У меня есть выделенный сервер с Ubuntu 13.10
установлен и базовая установка с Virtualbox
и phpvirtualbox
управлять гостевыми ОС на нем. У меня есть два IP-адреса, указывающих на сервер, и я хотел бы использовать один из них исключительно для виртуальной ОС, которая у меня есть с Ubuntu 12.04
в теме.
Это означает, что каждый порт и т. Д. Будет проходить через хост-сервер и перенаправляться прямо на эту гостевую ОС.
Я просмотрел различные сетевые методы на VirtualBox, но мне кажется, что ни один из них не подходит.
Если я использую NAT и переадресацию портов, я могу настроить гостевой компьютер на регистрацию вызовов только на эти порты через этот второй IP-адрес, и это здорово. Однако я не могу использовать какие-либо стандартные порты, которые уже используются на главном ПК, такие как SSH или 80, поскольку хост-компьютер использует их на обоих 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 с дополнительным IP-адресом, который находится на том же MAC-адресе (я могу получить от них другой MAC-адрес, если это необходимо?)
С указанными выше настройками я установил мою гостевую ОС Win7 для подключения к br1 и установил статический IP-адрес в Windows с такими же настройками, т.е.
address 2.3.4.5
netmask 255.255.255.220
gateway 2.3.4.1
Но он не мог найти сеть
Наконец, я добавил в / etc / vbox / interfaces:
vbox0 vbox br1
vbox1 vbox br1
Я задал этот вопрос на askubuntu.com здесь
https://askubuntu.com/questions/409862/virtualbox-forward-specific-ip-to-guest
Модификации, не стесняйтесь удалять один или два!
Вот способ решить проблему, хотя
После МНОГО проб и ошибок это кажется наиболее надежным вариантом ...
http://wiki.hetzner.de/index.php/Netzkonfiguration_Debian/en#Bridged
Мостовой режим В мостовой конфигурации пакеты отправляются напрямую. Гостевая система ведет себя как бы независимая. Так как это делает MAC-адреса гостевой системы видимыми извне, виртуальный MAC-адрес должен быть запрошен через робота Hetzner и назначен гостевой сетевой карте. Мост получает ту же конфигурацию сети, что и eth0. Конфигурация eth0 не указывается без замены.
Получите отдельные MAC-адреса для каждого из дополнительных IP-адресов
Затем используйте это для хостов / 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
Настройте гостевую ОС в виртуальном боксе для использования мостовой сети и выберите br0, затем в расширенных настройках установите Mac сетевого адаптера на MAC-адрес, который Hetzner предоставил вам для нового IP (без каких-либо :)
Тогда в гостевой ОС используйте это ..
# 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
Я бы предложил включить мост вместо использования 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
Ты можешь использовать NAT
с участием Port Forwarding
, чтобы передать все соединения от ОС хоста к гостевой ОС.
Вам нужно будет изменить настройки сети виртуальной машины, установить сетевой адаптер на 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>