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

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

  • Интерфейсу eth0 назначается общедоступный IP-адрес
  • Интерфейс обратной связи
  • Интерфейс Tun из OpenVPN

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

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

Спасибо

1
задан 20 March 2017 в 17:59
3 ответа

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

Network config in VM

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

.
2
ответ дан 3 December 2019 в 20:26

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

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

пример конфигурации, например, использует 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

Ваша vm должна использовать хост на интерфейсе vmnet-интерфейс в качестве (шлюза по умолчанию), но это должно быть по умолчанию, если вы не изменили множество сетевых настроек.

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

.
0
ответ дан 3 December 2019 в 20:26

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

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

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

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

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

.
0
ответ дан 3 December 2019 в 20:26

Теги

Похожие вопросы