मैं VMware फ़्यूज़न का उपयोग करके वर्चुअल मशीन का आईपी पता कैसे खोज सकता हूं?


18

क्या मैं वास्तव में वर्चुअल मशीन पर चल रहे ऑपरेटिंग सिस्टम में प्रवेश किए बिना VMware फ़्यूज़न का उपयोग करके एक वर्चुअल मशीन का आईपी निर्धारित कर सकता हूं? मैं एक मेनू विकल्प, कमांड लाइन, या अन्यथा कि मैं VMware फ्यूजन सॉफ्टवेयर के साथ आभासी छवि के खिलाफ जारी कर सकते हैं के लिए देख रहा हूँ।

साभार - एड्रॉन


यदि आप वर्चुअल मशीन एनआईसी का मैक पता जानते हैं तो आप हमेशा अपने मेजबान मशीन के एआरपी कैश का लाभ उठाने की कोशिश कर सकते हैं, या एआरपी को उल्टा कर सकते हैं।
ta.speot.is

यह आश्चर्यजनक है कि vmware इस ड्रॉप-डेड को अन्य vms की तरह स्पष्ट और आसान नहीं बनाता है! यदि आप हताश हैं, तो अवहि उत्तर के लिए चीयर्स, और झपकी लें, लेकिन फिर भी - बिग फेल, वीएमवेयर!
nealmcb

जवाबों:


1

संक्षिप्त उत्तर: नहीं

लंबे उत्तर: नहीं, लेकिन हो सकता है

एक आईपी पता विशुद्ध रूप से एक OS की जिम्मेदारी है। इसलिए, वर्चुअल फ्रेमवर्क जो OS रखता है, उसके भीतर टीसीपी / आईपी स्टैक के बारे में कोई विचार नहीं है जब तक कि हाइपर-वी और वीएमवेयर के अतिरिक्त अतिथि टूल (नीचे दिए गए टिप्पणियों में todda.speot.is के लिए धन्यवाद) जैसे सहजीवी जोड़ नहीं हैं। । यह पहली बार शुरू किए बिना वीएम पर फ़ाइलों को ब्राउज़ करने के लिए बहुत अलग नहीं है।

तकनीकी रूप से, यदि वीएम डीएचसीपी पर निर्भर है, तो आप अपने एनसीपी के अंतिम पते के लिए अपने डीएचसीपी सर्वर (संभवतः आपके लैन के राउटर) की खोज कर सकते हैं जो कि वर्चुअल एनआईसी के मैक पते को दिया गया था ताकि यह पता चल सके कि आईपी शायद क्या होगा । अगली बार जब यह लॉन्च होगा। यह मानते हुए कि जब आप पट्टे के इतिहास को देखते थे और जब वीएम शुरू हुआ था, तब उसी आईपी को किसी अन्य डिवाइस के लिए नहीं सौंपा गया था।


1
अरे। मैं उम्मीद कर रहा था कि VMware OS में कुछ हुक है जो इसे प्रदान करेगा। :( मेरे पास कॉर्पोरेट डीएचसीपी तक कोई पहुंच नहीं है, इस तरह से मुझे कोई मतलब नहीं है क्योंकि मेरे पास वास्तविक ओएस तक पहुंच नहीं है
एड्रन

एक हाइपरवाइजर आईपी ​​पते को हुक कर सकता है और हाइपर वी अपने गेस्ट एडिशंस के साथ कर सकता है। और ऐसा लगता है कि VMware के कुछ फ्लेवर आपको बताएंगे, kb.vmware.com/Platform/Publishing/images/1006098.JPG - लेकिन जैसा कि वेस्ले डेविड ने कहा, यह वास्तव में इस बारे में चिंता करने की हाइपरवाइजर की जिम्मेदारी नहीं है।
ta.speot.is

43

VMWare प्रदान करता है, आश्चर्य की बात नहीं है, इस के लिए एक उपकरण में बनाया vmrun। यह इसके अंतर्गत है /Applications/VMware Fusion.app/Contents/Library/vmrunक्योंकि यह अन्य फ्यूजन रिलीज में थोड़ा इधर-उधर हो गया है।

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

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

7
यह स्वीकृत उत्तर होना चाहिए। पूरी तरह से काम किया।
माइकल पॉटर

1
अच्छा! vmrunमेरे मैक के पथ में डिफ़ॉल्ट रूप से है, इसलिए vmrun getGuestIPAddress "$(vmrun list | grep vmx)", उद्धरण शामिल करें!
बिग रिच

स्पष्ट रूप से VMWare Tools को VM में चलाने की आवश्यकता है। (फ्यूजन
V8.5

10

यहाँ एक टिप है अगर यह किसी को भी मदद करता है। avahi-daemonVM पर स्थापित करें । यह आपको hostname के माध्यम से कनेक्ट करने की अनुमति देता है vmname.local, जहां vmnameआपके वर्चुअल मशीन का नाम है। मेरे मामले में, VM का नाम baremetalमेजबान पर है और मैं चला सकता हूं:

ssh baremetal.local

VM के IP को जानने की आवश्यकता नहीं है। :)


1
अच्छा विचार है लेकिन उन वीएम के बारे में जो ऑपरेटिंग सिस्टम चलाते हैं जहां avahi-daemonउपलब्ध नहीं है? उदाहरण के लिए विंडोज दिमाग में आता है ... :-)
Laryx Decidua

4

यह संभव है - कम से कम, सामान्य मामले में, जहां एनएटी-शैली नेटवर्क अतिथि के लिए कॉन्फ़िगर किया गया है। क्योंकि VMWare NAT-ing प्रदान कर रहा है, यह हमें यह बताने में सक्षम होना चाहिए कि यह वर्तमान में NAT-ing क्या है। कुछ vmrun listइस जानकारी को आउटपुट करना चाहिए। यह एक दोष नहीं है ...

लेकिन, किसी भी मामले में, यहाँ कोई भी कैसे पता लगा सकता है। सबसे पहले, ifconfigअपने मैक पर चलाएं (शायद, ipconfigविंडोज पर भी ऐसा ही होगा, लेकिन मैंने इसका परीक्षण नहीं किया है)। यह मशीन पर सभी नेटवर्क इंटरफेस की सूची देगा - भौतिक और आभासी दोनों। Vmnet- वाले के लिए देखो। मेरे मैक पर यह पैदा करता है:

% 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

इसलिए, मेरे मेहमान का आईपी इन दो वीएम निजी नेटवर्क में से एक पर है: या तो 192.168.82.0/24 या 192.168.123.0/24। आपके मेजबान पर सिर्फ एक, भाग्यशाली आप या दो से अधिक हो सकते हैं - हमें उन सभी की जांच करने की आवश्यकता है। यहाँ एक बहुत ही सरल tshsh-script है, सीधे कमांड-लाइन पर दर्ज किया गया है, जो मेरे लिए है। यह vmnet द्वारा प्रबंधित क्लास-सी के सभी निजी नेटवर्क में प्रत्येक पते को पिंग करने का प्रयास करता है और समाप्त होता है, जब एक पिंग सफल होता है। -W 500विकल्प (, शायद, और भी कम इस्तेमाल कर सकते हैं) एक प्रतिक्रिया के लिए केवल आधे सेकंड प्रतीक्षा करने के लिए पिंग बताता है, और -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 192.168.123.130
Password:

अब, मेरे पास केवल एक ही अतिथि चल रहा था - इसलिए पिंग का जवाब देने वाला पहला आईपी-पता सही था। यदि आप एक साथ कई मेहमान चलाते हैं, तो आपको ऐसे सभी वैध निजी आईपी-पतों की सूची बनाने के लिए समान या समान पिंग कमांड का उपयोग करने की आवश्यकता हो सकती है और तब तक आप उन सभी को आज़मा सकते हैं जब तक कि आप सही अतिथि में नहीं आते ...

(और, शायद, .130 वैसे भी NAT- आधारित पतों के लिए एक अच्छा अनुमान है। लेकिन मैं निश्चित रूप से नहीं कह सकता।)


1
नॅम्प के साथ आप तेजी से IP nmap -sP 192.168.123.*
ढूंढते हैं;

4

जैसा कि मिखाइल टी। ने कहा, "क्योंकि VMWare NAT-ing प्रदान कर रहा है, यह हमें यह बताने में सक्षम होना चाहिए कि यह वर्तमान में NAT-ing क्या है।" वास्तव में यह करता है:

मेरे वीएमवेयर फ्यूजन 6 इंस्टॉलेशन में, vmnet-dhcpdडेमन फाइलों को अपने पट्टे लिखता है /var/db/vmware/vmnet-dhcpd-vmnetX.leases, जहां "एक्स" 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-hostnameवी एम का नाम है और शब्द के बाद नंबर leaseउसके IP है। आप इन प्रविष्टियों को पार्स कर सकते हैं या बस सबसे हाल ही में देख सकते हैं। सुनिश्चित करें कि आप जो पट्टा देख रहे हैं वह अभी भी वैध है।


2

मेरा समाधान यह था:

एक बार जब आपके पास VMware टूल इंस्टॉल हो जाता है, तो साझाकरण कॉन्फ़िगर करें, ताकि आप CentOS से एक फ़ोल्डर (किसी भी फ़ोल्डर) तक पहुंच सकें। फिर, इस साझा फ़ोल्डर में अपनी वर्तमान तिथि और आईपी पते को जोड़ने के लिए / etc / sysconfig / network-script / ifup-post को संशोधित करें।

यह कैसे करना है:

संशोधित करें: / etc / sysconfig / network-script / ifup-post

ifup-post की अंतिम पंक्ति ("बाहर निकलें 0") से पहले इसे जोड़ें:

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

हर बार नेटवर्क आने के बाद, यह आपके if_figig की तारीख और वापसी मान के साथ आपके guest_ip.log को जोड़ देगा।

मेरे मामले में, मैंने अपने आईपी पते पर 192 के उपसर्ग के लिए grep करने का फैसला किया, क्योंकि मुझे पता है कि मेरे घर और काम के बीच, यह हमेशा 192 है। यह ऊपर दिए गए समायोजन द्वारा किया जा सकता है:

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

"ताकि आप एक फ़ोल्डर (किसी भी फ़ोल्डर) को CentOS से एक्सेस कर सकें।" उन लोगों के बारे में जो 1) अन्य लिनक्स वितरण का उपयोग करते हैं, 2) लिनक्स के अलावा अन्य यूनिक्स ऑपरेटिंग सिस्टम का उपयोग करते हैं, 3) अपने वीएम में गैर-यूनिक्स ऑपरेटिंग सिस्टम जैसे विंडोज, ... का उपयोग करते हैं? :-)
लेरिक्स डेसीडुआ

1

VM कंसोल में चलाएं ipconfig(यदि VM विंडोज है) या ifconfig(यदि VM लिनक्स है)।

IP eth0वह IP पता है जिसकी आपको तलाश है।


मूल प्रश्न "वर्चुअल मशीन पर चल रहे ऑपरेटिंग सिस्टम में प्रवेश किए बिना था?" इससे आपका ध्यान बच सकता है।
लैरीक्स डेसीडुआ

यह सवाल का जवाब नहीं दे सकता है, लेकिन मैं यहां एक अलग सवाल के साथ समाप्त हुआ और यह मददगार था।
जैमी-विल्सन

1

Ubuntu 15.04 पर VMPlayer चलाते समय मेरे पास एक ही मुद्दा था। मेरी वर्चुअल मशीन NAT को सेट कर दी गई थी, और यद्यपि मैं gui में लॉग इन करके और VM में ifconfig चलाकर इसका IP पता निर्धारित कर सकता था, मैं इसमें पिंग या ssh नहीं कर सकता था।

जब VMPlayer स्थापित होता है, तो यह vmnet1 और vmnet8 एडाप्टर पर dhcp को सक्षम नहीं करता है। समाधान "कनेक्शन संपादित करें" के साथ नेटवर्क कनेक्शन को संपादित करने के लिए ubuntu gui का उपयोग करना था। ईथरनेट के तहत vmnet1 खोजें, और संपादित करें बटन दबाएं। IPv4 सेटिंग्स के तहत, DHCP सक्षम करें, सहेजें और रीबूट करें।

अब यदि आप कमांड लाइन पर ifconfig चलाते हैं, तो आप देखेंगे कि vmnet1 में एक आईपी एड्रेस है। होस्ट से nat-ed VM में SSHing अब भी काम करता है।


0

Vmrun के संस्करण से (संस्करण 1.14.4 बिल्ड-3204469):

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

हालाँकि, ध्यान रखें कि इसके लिए कार्य करने के लिए VMware Tools सुइट को अतिथि OS में स्थापित किया जाना चाहिए और यह कदम अतिथि OS में प्रवेश किए बिना पूरा नहीं किया जा सकता है। आप टूल को "बेस इमेज" में इंस्टॉल कर सकते हैं और क्लोनिंग के जरिए उसमें से नई इमेज बना सकते हैं। फिर आप नए बनाए गए VMs का IP पता प्राप्त करने के लिए उपरोक्त कमांड का उपयोग कर सकते हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.