Как подключиться с хостом PostgreSQL от виртуальной виртуальной машины

У меня есть машина VirtualBox, работающая с Ubuntu 12.04 в хост-машине Mac OS X. На моей главной машине (Mac OS X) у меня установлен PostgreSQL. Я хотел бы подключиться к этому серверу PostgreSQL из моей виртуальной машины Ubuntu (обычно я знаю, что это наоборот).

Думаю, мне нужно настроить некоторые сетевые параметры в самом VirtualBox. Все, что я получаю от Vagrant docs, мне нужно назначить мой vm статический IP-адрес для использования частной сети. Но как только я создал, как мне добраться до моего хозяина от моего гостя?

Я не нашел ничего подобного в бродячих документах. Таким образом, для этого, вероятно, есть веская причина. Имеет ли это смысл? Я не хочу дублировать установку PostgreSQL. Просто используйте мой текущий существующий.

Ответ 1

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

См. этот ответ для объяснения.

Запустив netstat -rn, вы можете получить шлюз по умолчанию, а затем использовать этот IP-адрес в своем файле конфигурации вашего приложения.

Запуск netstat -rn | grep "^0.0.0.0 " | cut -d " " -f10 должен предоставить правильный IP-адрес. (только проверял это на моей машине)

Ответ 2

Простой способ - просто используйте этот "волшебный" IP-адрес изнутри бродяги без каких-либо дополнительных конфигураций:

10.0.2.2

Не знаю, всегда ли он статичен, хотя для меня это работает, и это очень удобно - я могу использовать ноутбук дома, из офиса - назначая мне разные IP-адреса маршрутизаторами, но мои виртуальные машины знают "надежное имя" их хозяин 🐶