Como encontro o endereço IP de uma máquina virtual usando o VMware Fusion?

18

Posso determinar o IP de uma máquina virtual usando o VMware Fusion sem realmente entrar no sistema operacional em execução na máquina virtual? Eu estou procurando uma opção de menu, linha de comando, ou de outra forma que eu possa emitir contra a imagem virtual com o próprio VMware Fusion Software.

Obrigado - Adron

    
por Adron 31.12.2011 / 01:42

10 respostas

1

Resposta curta: Não

Longa resposta: não, mas talvez

Um endereço IP é puramente da responsabilidade de um sistema operacional. Portanto, a estrutura virtual que mantém o sistema operacional não tem idéia sobre a pilha TCP / IP dentro de , a menos que existam adições simbióticas à estrutura, como Hyper-V e ferramentas guest adicionais da VMware (graças a todda.speot está nos comentários abaixo). Não é muito diferente de querer procurar os arquivos em uma VM sem iniciá-la primeiro.

Tecnicamente, se a VM confiar no DHCP, você poderá pesquisar o seu servidor DHCP (provavelmente o roteador de sua LAN) pela última concessão que foi entregue ao endereço MAC da NIC virtual para obter uma boa ideia do que o IP provavelmente será na próxima vez que for lançado. Isso é presumir que o mesmo IP não foi entregue a outro dispositivo quando você olhou para o histórico de aluguel e quando a VM foi iniciada.

    
por 31.12.2011 / 01:46
39

O VMWare fornece, não surpreendentemente, uma ferramenta incorporada para isso, vmrun . Está sob /Applications/VMware Fusion.app/Contents/Library/vmrun , embora tenha se movido em outros lançamentos do Fusion.

                                    
por 31.07.2015 / 13:45
9

Aqui vai uma dica para o caso de ajudar alguém. Instale avahi-daemon na VM. Isso permite que você se conecte via hostname vmname.local , onde vmname é o nome da sua máquina virtual. No meu caso, o nome da VM é baremetal e no host eu posso executar:

ssh baremetal.local

Não é necessário saber o IP da VM. :)

    
por 02.02.2014 / 05:19
4

É possível - pelo menos, no caso comum, onde a rede no estilo NAT é configurada para o convidado. Porque VMWare está fornecendo o NAT-ing, ele deve ser capaz de nos dizer, o que endereços é atualmente NAT-ing para. Algo como vmrun list deveria estar exibindo essa informação. Que isso não é uma falha ...

Mas, de qualquer forma, aqui está como se pode descobrir de qualquer maneira. Primeiro, execute ifconfig no seu Mac (talvez, ipconfig faça o mesmo no Windows, mas eu não testei). Isso listará todas as interfaces de rede na máquina - físicas e virtuais. Procure os vmnet-ones. No meu Mac isso produz:

% ifconfig | grep -A2 ^vmnet
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:01 
inet 192.168.82.1 netmask 0xffffff00 broadcast 192.168.82.255
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:08 
inet 192.168.123.1 netmask 0xffffff00 broadcast 192.168.123.255

Portanto, o IP do meu convidado está em uma dessas duas redes privadas da VM: 192.168.82.0/24 ou 192.168.123.0/24. Em seu host pode haver apenas um, sorte sua ou mais de dois - precisamos verificar todos eles. Aqui está um script tcsh muito simples, inserido diretamente na linha de comando, que fez isso por mim. Ele tenta fazer ping de cada endereço em todas as redes privadas de classe C gerenciadas por vmnet e termina quando um ping é bem-sucedido. A opção -W 500 diz ao ping para aguardar apenas meio segundo por uma resposta (poderia, provavelmente, usar ainda menos), e o -c 1 diz para enviar exatamente um pacote:

% set i=2
% while ( $i < 255 )
while? ping -W 500 -c 1 192.168.82.$i && break
while? ping -W 500 -c 1 192.168.123.$i && break
while? @ i++
while? end

O pequeno script acima foi exibido por algum tempo, listando todas as tentativas mal-sucedidas de acessar os endereços inexistentes:

PING 192.168.82.2 (192.168.82.2): 56 data bytes

--- 192.168.82.2 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
PING 192.168.123.2 (192.168.123.2): 56 data bytes
...

Até que finalmente conseguiu e terminou:

64 bytes from 192.168.123.130: icmp_seq=0 ttl=64 time=0.307 ms

--- 192.168.123.130 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss

Voilà, eu pude entrar no meu convidado:

% ssh 192.168.123.130
Password:

Agora, eu só tinha um único convidado em execução - então o primeiro endereço IP para responder a um ping era o correto. Se você executar vários convidados ao mesmo tempo, pode ser necessário usar o comando ping igual ou semelhante para criar uma lista de todos esses endereços IP privados válidos e, em seguida, testá-los até chegar ao convidado correto ...

(E, talvez, 0,130 é um bom palpite para endereços baseados em NAT de qualquer maneira. Mas eu não posso dizer com certeza.)

    
por 04.10.2013 / 19:53
4

Como Mikhail T. disse, "Como o VMWare está fornecendo o NAT-ing, ele deve ser capaz de nos dizer, para quais endereços ele é atualmente NAT-ing." Realmente faz:

Na minha instalação do VMware Fusion 6, o daemon vmnet-dhcpd escreve suas concessões para os arquivos /var/db/vmware/vmnet-dhcpd-vmnetX.leases , onde "X" é 1 e 8. Empiricamente :-) Eu estabeleci que é vmnet8 que eu deveria procurar. Aqui está um trecho do arquivo de concessão /var/db/vmware/vmnet-dhcpd-vmnet8.leases :

lease 192.168.177.129 {
    starts 1 2014/02/17 09:34:19;
    ends 1 2014/02/17 09:36:56;
    hardware ethernet 00:0c:29:2b:2b:10;
    client-hostname "ubuntu";
}

O client-hostname é o nome da VM e o número após a palavra lease ser seu IP. Você pode analisar essas entradas ou simplesmente observar as mais recentes. Certifique-se de que a concessão que você está vendo ainda seja válida.

    
por 01.09.2014 / 11:16
2

Minha solução para isso foi:

Quando tiver as ferramentas VMware instaladas, configure o compartilhamento para que você possa acessar uma pasta (qualquer pasta) do CentOS. Em seguida, modifique / etc / sysconfig / network-scripts / ifup-post para anexar sua data atual & endereço IP para um arquivo nesta pasta compartilhada.

Como fazer isso:

Modifique: / etc / sysconfig / network-scripts / ifup-post

adicione isto antes da última linha do ifup-post ("exit 0"):

date >> /path/to/shared/folder/guest_ip.log
ifconfig >> /path/to/shared/folder/guest_ip.log

Isto irá acrescentar o seu guest_ip.log com a data e o valor de retorno do ifconfig cada vez que a rede aparecer.

No meu caso, decidi pelo prefixo 192 do meu endereço IP, pois sei que entre a minha casa e o trabalho, é sempre 192. Isso pode ser feito ajustando-se o seguinte da seguinte forma:

date >> /path/to/shared/folder/guest_ip.log
ifconfig | grep 192 >> /path/to/shared/folder/guest_ip.log
    
por 01.04.2014 / 08:00
1

Executar no console da VM ipconfig (se a VM for o Windows) ou ifconfig (se a VM for o Linux).

O IP de eth0 é o endereço IP que você está procurando.

    
por 09.01.2014 / 14:35
1

Eu tive o mesmo problema durante a execução do VMPlayer no Ubuntu 15.04. Minha máquina virtual foi definida como NAT e, embora eu pudesse determinar seu endereço IP fazendo login na GUI e executando o ifconfig na VM, não consegui fazer ping ou ssh nela.

Acontece que quando o VMPlayer está instalado, ele não habilitou o dhcp no adaptador vmnet1 e vmnet8. Solução foi usar o gui do Ubuntu para editar as conexões de rede com "Editar Conexões". Encontre vmnet1 em ethernet e aperte o botão de edição. Em configurações IPv4, ative o DHCP, salve e reinicialize.

Agora, se você executar o ifconfig na linha de comando, notará que a vmnet1 tem um endereço IP. O SSH na VM nat do host agora funciona também.

    
por 04.08.2015 / 20:07
0

Das páginas de manual do vmrun (versão 1.14.4 build-3204469):

getGuestIPAddress        Path to vmx file     Gets the IP address of  the guest
                         [-wait]

No entanto, lembre-se de que, para que isso funcione, o conjunto de ferramentas do VMware deve ser instalado no sistema operacional convidado e essa etapa não pode ser realizada sem o registro no sistema operacional convidado. Você pode instalar as ferramentas em uma "imagem de base" e criar novas imagens a partir da clonagem. Então você pode usar o comando acima para obter o endereço IP das VMs recém-criadas.

    
por 24.03.2016 / 16:03
0
arp -a| grep vmnet 
? (172.16.65.132) at 0:c:29:83:1:e0 on vmnet8 ifscope [ethernet]
    
por 11.11.2017 / 17:02