Могу ли я определить IP-адрес виртуальной машины с помощью VMware Fusion без фактического входа в операционную систему, работающую на виртуальной машине? Я ищу пункт меню, командную строку или что-либо еще, что я могу создать для виртуального образа с помощью самого программного обеспечения VMware Fusion.
Спасибо - адрон
Ответы:
Краткий ответ: нет
Длинный ответ: нет, но возможно
IP-адрес является исключительно ответственностью ОС. Следовательно, виртуальная платформа, в которой находится ОС, не имеет представления о стеке TCP / IP, если только в нее не добавлены симбиотические дополнения, такие как дополнительные гостевые инструменты Hyper-V и VMware (благодаря todda.speot.is в комментариях ниже) , Это не сильно отличается от желания просматривать файлы на виртуальной машине, не запуская ее сначала.
Технически, если виртуальная машина полагается на DHCP, вы можете найти на вашем DHCP-сервере (скорее всего, в маршрутизаторе вашей локальной сети) последнюю аренду, которая была передана MAC-адресу виртуального сетевого адаптера, чтобы получить представление о том, какой IP-адрес, вероятно, будет в следующий раз он запускается. Это предполагает, что тот же IP не был передан другому устройству в промежутке между просмотром истории аренды и запуском виртуальной машины.
источник
Не удивительно, что VMWare предоставляет для этого встроенный инструмент
vmrun
. Это под,/Applications/VMware Fusion.app/Contents/Library/vmrun
хотя это перемещалось в других выпусках Fusion немного.источник
vmrun
по умолчанию находится в PATH моего Mac, так чтоvmrun getGuestIPAddress "$(vmrun list | grep vmx)"
включайте кавычки!Вот совет на случай, если это кому-нибудь поможет. Установить
avahi-daemon
на ВМ. Это позволяет вам подключаться через имя хостаvmname.local
, гдеvmname
находится имя вашей виртуальной машины. В моем случае имя виртуальной машиныbaremetal
и на хосте я могу запустить:Не нужно знать IP виртуальной машины. :)
источник
avahi-daemon
недоступные? Например, Windows приходит на ум ... :-)Это возможно - по крайней мере, в общем случае, когда сеть в стиле NAT настроена для гостя. Поскольку VMWare обеспечивает NAT-вход, он должен быть в состоянии сказать нам, для каких адресов он в настоящее время используется NAT. Нечто подобное
vmrun list
должно выводить эту информацию. То, что это не является недостатком ...Но, в любом случае, вот как это можно узнать в любом случае. Во-первых, запустите
ifconfig
на своем Mac (возможно,ipconfig
сделайте то же самое в Windows, но я не проверял). Это перечислит все сетевые интерфейсы на машине - как физические, так и виртуальные. Ищите vmnet-ы. На моем Mac это производит:Итак, IP-адрес моего гостя находится в одной из этих двух частных сетей виртуальных машин: либо 192.168.82.0/24, либо 192.168.123.0/24. На вашем хосте может быть только один, вам повезло, или более двух - нам нужно проверить их все. Вот очень простой tcsh-скрипт, введенный прямо в командной строке, который сделал это для меня. Он пытается пропинговать каждый адрес во всех частных сетях класса C, управляемых vmnet, и завершается, когда эхо-запрос успешен.
-W 500
Опция говорит пинг ждать только полсекунды ответа (может, вероятно, использовать даже меньше), и-c 1
говорит ему , чтобы послать ровно один пакет:Вышеприведенный небольшой сценарий некоторое время выполнялся с перечислением всех неудачных попыток достичь несуществующих адресов:
Пока это наконец не получилось и не закончилось
Вуаля, я смог войти в моего гостя:
Теперь у меня был запущен только один гость, поэтому первый IP-адрес, отвечающий на пинг, был правильным. Если вы запускаете несколько гостей одновременно, вам может понадобиться использовать одну и ту же или похожую команду ping для создания списка всех таких действительных частных IP-адресов, а затем пробовать их все, пока вы не попадете в нужного гостя ...
(И, возможно, .130 в любом случае является хорошим предположением для адресов на основе NAT. Но я не могу сказать точно.)
источник
nmap -sP 192.168.123.*
Как сказал Михаил Т. «Поскольку VMWare обеспечивает NAT-вход, он должен быть в состоянии сказать нам, для каких адресов он в настоящее время используется NAT». Это действительно так:
В моей установке VMware Fusion 6
vmnet-dhcpd
демон записывает свои аренды в файлы/var/db/vmware/vmnet-dhcpd-vmnetX.leases
, где "X" - 1 и 8. Опытным путем :-) Я установил, что мне нужно искать именно vmnet8. Вот выдержка из файла аренды/var/db/vmware/vmnet-dhcpd-vmnet8.leases
:client-hostname
Это имя виртуальной машины и число после словаlease
является его IP. Вы можете разобрать эти записи или просто посмотреть самые последние. Убедитесь, что аренда, на которую вы смотрите, все еще действительна.источник
Мое решение этого было:
После установки инструментов VMware настройте общий доступ, чтобы вы могли получить доступ к папке (любой папке) из CentOS. Затем измените / etc / sysconfig / network-scripts / ifup-post, чтобы добавить свою текущую дату и IP-адрес в файл в этой общей папке.
Как это сделать:
Изменить: / etc / sysconfig / network-scripts / ifup-post
добавьте это перед последней строкой ifup-post ("exit 0"):
Это добавит ваш guest_ip.log с датой и возвращаемым значением ifconfig при каждом подключении к сети.
В моем случае я решил использовать префикс 192 для моего IP-адреса, поскольку я знаю, что между моим домом и работой всегда 192. Это можно сделать, изменив вышеприведенное, как указано ниже:
источник
Запустите в консоли VM
ipconfig
(если VM - Windows) илиifconfig
(если VM - Linux).IP
eth0
-адрес - это IP-адрес, который вы ищете.источник
У меня была такая же проблема при запуске VMPlayer на Ubuntu 15.04. Моя виртуальная машина была настроена на NAT, и хотя я мог определить ее IP-адрес, войдя в графический интерфейс и запустив ifconfig на виртуальной машине, я не смог пропинговать или ssh войти в нее.
Оказывается, когда установлен VMPlayer, он не включил dhcp на адаптере vmnet1 и vmnet8. Решением было использовать графический интерфейс ubuntu для редактирования сетевых подключений с помощью «Редактировать подключения». Найдите vmnet1 под ethernet и нажмите кнопку редактирования. В настройках IPv4 включите DHCP, сохраните и перезагрузите компьютер.
Теперь, если вы запустите ifconfig в командной строке, вы заметите, что vmnet1 имеет IP-адрес. SSHing в nat-ed VM с хоста теперь также работает.
источник
Из man-страниц vmrun (версия 1.14.4 build-3204469):
Однако имейте в виду, что для того, чтобы это работало, пакет VMware Tools должен быть установлен в гостевой ОС, и этот шаг не может быть выполнен без входа в гостевую ОС. Вы можете установить инструменты в «базовое изображение» и создавать новые изображения из него с помощью клонирования. Затем вы можете использовать вышеуказанную команду, чтобы получить IP-адрес вновь созданных виртуальных машин.
источник
источник