VMware Fusion을 사용하여 가상 머신의 IP 주소를 어떻게 찾습니까?


19

가상 머신에서 실행되는 운영 체제에 실제로 들어 가지 않고 VMware Fusion을 사용하여 가상 머신의 IP를 확인할 수 있습니까? 메뉴 옵션, 명령 행 또는 VMware Fusion Software 자체에서 가상 이미지에 대해 발행 할 수있는 다른 옵션을 찾고 있습니다.

감사합니다-Adron


가상 머신 NIC의 MAC 주소를 아는 경우 항상 호스트 머신의 ARP 캐시 또는 리버스 ARP를 활용할 수 있습니다.
ta.speot.is

vmware가 다른 VM과 마찬가지로이 드롭 데드를 분명하고 쉽게 만들지 못한다는 것은 놀라운 일입니다! avahi 답변을 응원하고, 필사적이지만 여전히 nmap 인 경우 nmap VMware!
nealmcb

답변:


1

짧은 답변 : 아니요

긴 답변 : 아니요

IP 주소는 전적으로 OS의 책임입니다. 따라서 OS를 보유한 가상 프레임 워크는 Hyper-V 및 VMware의 추가 게스트 도구와 같은 프레임 워크에 공생 적으로 추가되지 않는 한 TCP / IP 스택에 대해 전혀 알지 못합니다 (todda.speot. 덕분에 아래 주석에 있음). . VM을 시작하지 않고 VM에서 파일을 탐색하려는 것과 크게 다르지 않습니다.

VM이 DHCP에 의존하는 경우 기술적으로, 당신은 할 수 는 IP는 것이 무엇의 좋은 아이디어를 얻을 수있는 가상 NIC의 MAC 주소로 나눠 마지막 임대에 대한 DHCP 서버 (가능성이 LAN의 라우터를) 검색 아마 일을 다음에 시작할 때. 임대 기록을 볼 때와 VM이 시작될 때 사이에 동일한 IP가 다른 장치로 전달되지 않았다고 가정합니다.


1
아아 VMware가이를 제공 할 수있는 OS에 연결되기를 바랐습니다. :( 회사 DHCP에 액세스 할 수 없으므로 실제 OS에도 액세스 할 수 없으므로 알 수 없습니다.
Adron

하이퍼 바이저 IP 주소를 연결하고 가져올 수 있으며 Hyper V는 게스트 추가 기능으로 IP 주소를 수행합니다. 그리고 VMware의 풍미도 kb.vmware.com/Platform/Publishing/images/1006098.JPG 라고 알려줄 것입니다. 그러나 WesleyDavid가 말했듯이, 이것에 대해 걱정하는 것은 실제로 하이퍼 바이저의 책임이 아닙니다.
ta.speot.is

46

VMWare는 놀랍게도이를위한 내장 도구를 제공합니다 vmrun. /Applications/VMware Fusion.app/Contents/Library/vmrun다른 Fusion 릴리스에서는 약간 이동했지만 아래에 있습니다.

🍺 vmrun list
    Total running VMs: 1
    .docker/machine/machines/myvm.vmx

🍺  vmrun getGuestIPAddress ~/.docker/machine/machines/myvm.vmx
    172.16.213.128

7
이것이 정답입니다. 완벽하게 작동했습니다.
Michael Potter

2
좋은! vmrun기본적으로 내 Mac의 PATH에 있으므로 vmrun getGuestIPAddress "$(vmrun list | grep vmx)"따옴표를 포함하십시오!
빅 리치

VMWare 도구는 VM에서 실행해야합니다. (Fusion V8.5)
Laryx Decidua

10

누군가를 도울 수있는 팁이 있습니다. avahi-daemonVM에 설치 하십시오. 이를 통해 hostname을 통해 연결할 수 있습니다 vmname.local. 여기서 vmname가상 머신의 이름입니다. 필자의 경우 VM의 이름은 baremetal내가 실행할 수있는 호스트에 있습니다.

ssh baremetal.local

VM의 IP를 알 필요가 없습니다. :)


1
좋은 생각이지만 운영 체제를 avahi-daemon사용할 수없는 VM 은 어떻습니까? 예를 들어 Windows가 떠오른다 ... :-)
Laryx Decidua

4

적어도 NAT 스타일 네트워크가 게스트에 대해 구성된 일반적인 경우는 가능합니다. VMWare는 NAT-ing을 제공하고 있기 때문에 현재 NAT가 어떤 주소를 사용하고 있는지 알려줄 수 있어야합니다. 이와 같은 vmrun list정보가이 정보를 출력해야합니다. 그것은 결함이 아닙니다 ...

그러나 어쨌든 여기에 어떻게 찾을 수 있는지가 있습니다. 먼저 ifconfigMac 에서 실행 하십시오 (아마도 ipconfigWindows에서 동일하게 작동하지만 테스트하지는 않았습니다). 여기에는 머신의 모든 네트워크 인터페이스 (실제 및 가상)가 나열됩니다. vmnet-one을 찾으십시오. 내 Mac에서는 다음이 생성됩니다.

% 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

따라서 게스트의 IP는 192.168.82.0/24 또는 192.168.123.0/24의 두 VM 사설 네트워크 중 하나에 있습니다. 호스트에는 단 하나, 운이 좋거나 둘 이상이있을 수 있습니다. 모두 확인해야합니다. 다음은 명령 줄에 직접 입력 한 매우 간단한 tcsh 스크립트입니다. vmnet에 의해 관리되는 모든 클래스 C 개인 네트워크에서 각 주소를 ping하려고 시도하고 ping이 성공하면 종료됩니다. 이 -W 500옵션은 핑에게 응답을 위해 0.5 초만 기다리라고 지시하고 (아마도 더 적게 사용할 수 있음) -c 1정확히 하나의 패킷을 보내도록 지시합니다.

% 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

위의 작은 스크립트는 존재하지 않는 주소에 도달하려는 모든 실패한 시도를 나열하는 시간 동안 실행되었습니다.

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
...

그것이 마침내 성공하고 끝날 때까지 :

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à, 나는 내 손님으로 ssh 수 있었다 :

% ssh 192.168.123.130
Password:

이제는 게스트가 한 명뿐이므로 핑에 응답하는 첫 번째 IP 주소가 맞았습니다. 한 번에 여러 게스트를 실행하는 경우 동일한 모든 유사한 개인 IP 주소 목록을 작성하기 위해 동일하거나 유사한 ping 명령을 사용해야 할 수 있으며 올바른 게스트가 될 때까지 모두 시도하십시오 ...

(그리고 어쩌면 .130은 NAT 기반 주소에 대한 좋은 추측입니다. 그러나 확실하게 말할 수는 없습니다.)


1
nmap을 사용하면 업 IP가 더 빠릅니다. ;-)nmap -sP 192.168.123.*
Robert Reiz

4

Mikhail T.가 말했듯이 "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.

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";
}

client-hostnameVM의 이름과 단어 뒤의 숫자는 lease자사의 IP입니다. 이러한 항목을 구문 분석하거나 가장 최근 항목 만 볼 수 있습니다. 보고있는 임대가 여전히 유효한지 확인하십시오.


2

이것에 대한 나의 해결책은 다음과 같습니다.

VMware 도구가 설치되면 CentOS에서 폴더 (모든 폴더)에 액세스 할 수 있도록 공유를 구성하십시오. 그런 다음 / etc / sysconfig / network-scripts / ifup-post를 수정하여이 공유 폴더의 파일에 현재 날짜 및 IP 주소를 추가하십시오.

이를 수행하는 방법 :

수정 : / etc / sysconfig / network-scripts / ifup-post

ifup-post의 마지막 줄 앞에 이것을 추가하십시오 ( "exit 0") :

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

네트워크가 시작될 때마다 guest_ip.log에 ifconfig의 날짜와 반환 값이 추가됩니다.

필자의 경우 집과 직장 사이에 항상 192라는 것을 알기 때문에 IP 주소에서 접두사 192를 grep하기로 결정했습니다. 위와 같이 조정하면 다음과 같이 할 수 있습니다.

date >> /path/to/shared/folder/guest_ip.log
ifconfig | grep 192 >> /path/to/shared/folder/guest_ip.log

"CentOS에서 폴더 (모든 폴더)에 액세스 할 수 있습니다." 1) 다른 Linux 배포판을 사용하고, 2) Linux 이외의 UNIX 운영 체제를 사용하고, 3) Windows와 같은 비 유닉스 운영 체제를 VM에서 사용하는 사람들은 어떻습니까? :-)
Laryx Decidua

1

VM 콘솔 ipconfig(VM이 Windows 인 경우) 또는 ifconfig(VM이 Linux 인 경우 ) 에서 실행하십시오 .

IP eth0는 찾고있는 IP 주소입니다.


원래 질문은 "가상 머신에서 실행되는 운영 체제에 실제로 들어 가지 않은가"였습니다. 이것은 당신의주의를 피했을 수도 있습니다.
Laryx Decidua

질문에 대답하지 않을 수도 있지만 여기서 약간 다른 질문으로 끝났으며 도움이되었습니다.
jamie-wilson 2016 년

1

Ubuntu 15.04에서 VMPlayer를 실행하는 동안 동일한 문제가 발생했습니다. 내 가상 머신은 NAT로 설정되었으며 gui에 로그인하고 VM에서 ifconfig를 실행하여 IP 주소를 확인할 수 있었지만 핑하거나 ssh 할 수 없었습니다.

VMPlayer가 설치되면 vmnet1 및 vmnet8 어댑터에서 dhcp를 활성화하지 않았습니다. 해결책은 우분투 GUI를 사용하여 "연결 편집"으로 네트워크 연결을 편집하는 것입니다. 이더넷에서 vmnet1을 찾아서 편집 버튼을 누르십시오. IPv4 설정에서 DHCP를 활성화하고 저장하고 재부팅하십시오.

명령 행에서 ifconfig를 실행하면 vmnet1에 IP 주소가 있음을 알 수 있습니다. 호스트에서 nat-ed VM으로의 SSH 연결도 이제 작동합니다.


0

vmrun (버전 1.14.4 build-3204469) 맨 페이지에서 :

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

그러나이 기능을 사용하려면 게스트 OS에 VMware Tools 제품군을 설치해야하며 게스트 OS에 로그인하지 않으면이 단계를 수행 할 수 없습니다. "기본 이미지"에 도구를 설치하고 복제를 통해 도구에서 새 이미지를 작성할 수 있습니다. 그런 다음 위 명령을 사용하여 새로 생성 된 VM의 IP 주소를 얻을 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.