Czy mogę określić adres IP maszyny wirtualnej za pomocą VMware Fusion bez faktycznego wchodzenia do systemu operacyjnego uruchomionego na maszynie wirtualnej? Szukam opcji menu, wiersza polecenia lub w inny sposób, który mogę wystawić przeciwko obrazowi wirtualnemu za pomocą samego oprogramowania VMware Fusion.
Dzięki - Adron
Odpowiedzi:
Krótka odpowiedź: Nie
Długa odpowiedź: Nie, ale może
Za adres IP odpowiada wyłącznie system operacyjny. Dlatego wirtualna struktura utrzymująca system operacyjny nie ma pojęcia o stosie TCP / IP, chyba że istnieją symbiotyczne dodatki do struktury, takie jak Hyper-V i dodatkowe narzędzia gościa VMware (dzięki todda.speot.is w komentarzach poniżej) . Nie różni się niczym od przeglądania plików na maszynie wirtualnej bez uprzedniego uruchomienia.
Technicznie rzecz biorąc, jeśli VM opiera się na DHCP, to mógłby szukać serwera DHCP (prawdopodobnie routera sieci'S) za ostatni dzierżawy, która została przekazana na zewnątrz na adres MAC wirtualnej karty sieciowej, aby uzyskać dobry pomysł, co IP będzie prawdopodobnie być przy następnym uruchomieniu. Zakłada się, że ten sam adres IP nie został przekazany innemu urządzeniu pomiędzy, kiedy spojrzałeś na historię dzierżawy, a kiedy uruchomiono maszynę wirtualną.
źródło
VMWare zapewnia, co nie dziwi, wbudowane narzędzie do tego
vmrun
. Jest poniżej,/Applications/VMware Fusion.app/Contents/Library/vmrun
choć trochę się zmienił w innych wydaniach Fusion.źródło
vmrun
jest domyślnie w ŚCIEŻCE mojego Maca, więcvmrun getGuestIPAddress "$(vmrun list | grep vmx)"
dołącz cytaty!Oto wskazówka na wypadek, gdyby komukolwiek to pomogło. Zainstaluj
avahi-daemon
na maszynie wirtualnej. Umożliwia to połączenie za pośrednictwem nazwy hostavmname.local
, gdzievmname
jest nazwa maszyny wirtualnej. W moim przypadku nazwa maszyny wirtualnej tobaremetal
i na hoście mogę uruchomić:Nie musisz znać adresu IP maszyny wirtualnej. :)
źródło
avahi-daemon
są niedostępne? Na przykład przychodzi na myśl system Windows ... :-)Jest to możliwe - przynajmniej w powszechnym przypadku, gdy sieć w stylu NAT jest skonfigurowana dla gościa. Ponieważ VMWare zapewnia NAT, powinien być w stanie powiedzieć nam, dla jakich adresów jest obecnie NAT. Coś takiego
vmrun list
powinno wypisywać te informacje. To nie jest wada ...Ale tak czy inaczej, oto jak można się tego dowiedzieć. Najpierw uruchom
ifconfig
na komputerze Mac (być możeipconfig
zrobiłby to samo w systemie Windows, ale go nie przetestowałem). Spowoduje to wyświetlenie listy wszystkich interfejsów sieciowych na komputerze - zarówno fizycznych, jak i wirtualnych. Poszukaj vmnet-tych. Na moim komputerze Mac powoduje to:Tak więc adres IP mojego gościa znajduje się w jednej z tych dwóch prywatnych sieci maszyn wirtualnych: 192.168.82.0/24 lub 192.168.123.0/24. Na twoim hoście może być tylko jeden, masz szczęście lub więcej niż dwa - musimy je wszystkie sprawdzić. Oto bardzo prosty skrypt tcsh, wprowadzony bezpośrednio z wiersza poleceń, który zrobił to dla mnie. Próbuje pingować każdy adres we wszystkich prywatnych sieciach klasy C zarządzanych przez vmnet i kończy się, gdy ping się powiedzie. Ta
-W 500
opcja mówi pingowi, aby poczekał tylko pół sekundy na odpowiedź (prawdopodobnie prawdopodobnie użyłby jeszcze mniej), i-c 1
nakazuje wysłanie dokładnie jednego pakietu:Powyższy mały skrypt działał przez pewien czas z listą wszystkich nieudanych prób dotarcia do nieistniejących adresów:
Aż w końcu się udało i skończyło:
Voilà, mogłem ssh do mojego gościa:
Teraz miałem tylko jednego gościa - więc pierwszy adres IP, który odpowiedział na ping, był właściwy. Jeśli uruchamiasz wielu gości jednocześnie, może być konieczne użycie tego samego lub podobnego polecenia ping, aby zbudować listę wszystkich takich ważnych prywatnych adresów IP, a następnie wypróbować je wszystkie, aż uzyskasz prawidłowego gościa ...
(I może .130 i tak dobrze zgaduje adresy oparte na NAT. Ale nie jestem tego pewien).
źródło
nmap -sP 192.168.123.*
Jak powiedział Mikhail T., „Ponieważ VMWare zapewnia NAT, powinien być w stanie powiedzieć nam, dla jakich adresów jest obecnie NAT”. Rzeczywiście:
W mojej instalacji VMware Fusion 6
vmnet-dhcpd
demon zapisuje dzierżawę do plików/var/db/vmware/vmnet-dhcpd-vmnetX.leases
, w których „X” to 1 i 8. Empirycznie :-) Ustaliłem, że powinienem szukać vmnet8. Oto fragment pliku dzierżawy/var/db/vmware/vmnet-dhcpd-vmnet8.leases
:Jest
client-hostname
to nazwa maszyny wirtualnej, a liczba po słowielease
to jej adres IP. Możesz przeanalizować te wpisy lub po prostu spojrzeć na najnowsze. Upewnij się, że umowa, na którą patrzysz, jest nadal ważna.źródło
Moim rozwiązaniem tego było:
Po zainstalowaniu narzędzi VMware skonfiguruj udostępnianie, aby uzyskać dostęp do folderu (dowolnego folderu) z CentOS. Następnie zmodyfikuj / etc / sysconfig / network-scripts / ifup-post, aby dołączyć bieżącą datę i adres IP do pliku w tym folderze współdzielonym.
Jak to zrobić:
Zmodyfikuj: / etc / sysconfig / network-scripts / ifup-post
dodaj to przed ostatnim wierszem ifup-post („exit 0”):
Spowoduje to dołączenie twojego guest_ip.log do daty i wartości zwracanej przez ifconfig przy każdym uruchomieniu sieci.
W moim przypadku zdecydowałem się na grep dla prefiksu 192 na moim adresie IP, ponieważ wiem, że między moim domem a pracą zawsze jest to 192. Można to zrobić, dostosowując powyższe w następujący sposób:
źródło
Uruchom w konsoli VM
ipconfig
(jeśli VM to Windows) lubifconfig
(jeśli VM to Linux).IP
eth0
to adres IP, którego szukasz.źródło
Miałem ten sam problem podczas uruchamiania VMPlayer na Ubuntu 15.04. Moja maszyna wirtualna została ustawiona na NAT i chociaż mogłem określić jej adres IP, logując się do GUI i uruchamiając ifconfig na maszynie wirtualnej, nie mogłem pingować ani ssh.
Okazuje się, gdy VMPlayer został zainstalowany, nie włączył dhcp na adapterach vmnet1 i vmnet8. Rozwiązaniem było użycie interfejsu Ubuntu GUI do edycji połączeń sieciowych za pomocą „Edytuj połączenia”. Znajdź vmnet1 w ethernet i naciśnij przycisk edycji. W ustawieniach IPv4 włącz DHCP, zapisz i uruchom ponownie.
Teraz, jeśli uruchomisz ifconfig w linii poleceń, zauważysz, że vmnet1 ma adres IP. Teraz działa również SSHing do nat-ed VM z hosta.
źródło
Ze stron vmrun (wersja 1.14.4 build-3204469):
Należy jednak pamiętać, że aby to zadziałało, pakiet VMware Tools powinien być zainstalowany w systemie-gościu i tego kroku nie można wykonać bez zalogowania się w systemie-gościu. Możesz zainstalować narzędzia w „obrazie podstawowym” i tworzyć z niego nowe obrazy poprzez klonowanie. Następnie możesz użyć powyższego polecenia, aby uzyskać adres IP nowo utworzonych maszyn wirtualnych.
źródło
źródło