Назад | Перейти на главную страницу

Предоставление виртуальной машине собственного IP-адреса

У меня есть выделенный сервер под управлением Ubuntu у хостинг-провайдера. Я уже настроил OpenVPN и VirtualBox и установил виртуальную машину Windows 7 с помощью VirtualBox. Сервер имеет следующие интерфейсы:

Возможно ли получить Win7-VM для получения IP-адреса из диапазона VM (10.8.0.0/24)? Я хочу, чтобы это было возможно, чтобы система работала и была доступна по общедоступному IP-адресу, и если я подключаюсь к VPN, чтобы иметь доступ к виртуальной машине, например, с IP-адресом 10.8.0.7?

Я слышал о сетевом мосте и уже пробовал несколько конфигураций, но когда я это сделал, весь сервер стал недоступен. Может быть, кто-нибудь объяснит мне, насколько это реально и какой подход будет наиболее подходящим.

Спасибо

Изменение настроек сетевого адаптера на мостовое соединение должно поместить вашу виртуальную машину в тот же newtork, что и хост, используя первый доступный IP-адрес. С этого момента вы можете настроить статический IP-адрес, как если бы это был физический компьютер, или вы можете использовать DHCP для привязки MAC-адреса вашей виртуальной машины к IP-адресу (например, с помощью маршрутизатора или сервера имен).

Надеюсь это поможет!

Вам нужно использовать tap устройство и режим bridge в вашей конфигурации OpenVPN.

Затем вам нужно сделать мост, который имеет tap устройство, настроенное в OpenVPN, и виртуальный внутренний сетевой адаптер в качестве участников.

Вам необходимо назначить IP-адрес хоста для интерфейса моста на хосте.

После этого ваш туннель OpenVPN и сетевой адаптер виртуальной машины находятся в одной подсети, и после подключения к серверу OpenVPN вы будете подключены к той же сети.

Вы должны оставить интерфейс, имеющий публичный IP-адрес, как есть.

В общем, решение с наименьшими проблемами может заключаться в том, чтобы виртуальная машина находилась в сети, доступной с хоста, и использовала маршрутизацию между внешней сетью и сетью виртуальной машины.

Это дает вам наибольший контроль, в то время как его не видно для внешней сети. Это позволяет избежать, например, проблем с dhcp-запросами от виртуальной машины, поступающих в сеть хостинг-провайдера, и подобных проблем.

пример конфигурации, например, будет использовать 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 как (по умолчанию) шлюз, но это должно быть по умолчанию, если вы не меняли многие сетевые настройки.

При настройке маршрутизации вы, вероятно, захотите добавить еще несколько правил iptables, то есть предотвратить пересылку между другими интерфейсами.