VM को बैकग्राउंड में चल रहा IP पता कैसे सौंपा जाए?


27

मैं निम्न आदेश का उपयोग करके पृष्ठभूमि में वर्चुअल बॉक्स से अपना उबंटू उदाहरण चलाता हूं:

VBoxManage startvm ${VM_NAME} --type headless

इसके और GUI के माध्यम से इसे चलाने के बीच मुख्य अंतर यह है कि, जब मैं शुरू होने के बाद GUI में होता हूं, तो मैं यह ifconfigदेख सकता हूं कि IP पता क्या है ताकि मैं sshहोस्ट पर अपने टर्मिनल से इसे कर सकूं और जाहिर है ' टी पृष्ठभूमि में है कि करते हैं।

नेटवर्क पर आईपी पतों के एक गतिशील असाइनमेंट को मानते हुए, क्या ssh प्रयोजनों के लिए नए बनाए गए उदाहरण के लिए असाइन किए गए IP को निकालने का एक तरीका है या क्या आईपी को जाने बिना उसमें ssh करने का एक तरीका है (जैसे होस्ट पर एक बैकडोर पोर्ट के माध्यम से। )?

जवाबों:


16

आप IP पते को निकालने के लिए VBoxManage कमांड का उपयोग कर सकते हैं, जैसा कि virtualbox.org पर इस फोरम पोस्ट में दिखाया गया है :

VBoxManage guestproperty enumerate <vmname>

जब तक आपके पास बहुत अच्छे कारण नहीं हैं, हालांकि, आप अपने अतिथि vm को एक स्थिर IP पता निर्दिष्ट करने पर जोर देना चाहेंगे। यह संभव है, भले ही आप शायद डीएचसीपी का उपयोग कर रहे हों। आपके डीएचसीपी सर्वर द्वारा आवंटित सीमा के बाहर बस एक आईपी पता चुनें।


7
उस कमांड ने IP एड्रेस
amphibient

3
इसके लिए आपको काम करने के लिए अतिथि योग स्थापित करने होंगे।
हैवीड

ठीक है, तब आप ऐसा कैसे करते हैं जब अतिथि जोड़ स्थापित नहीं होते हैं ?
code_dredd

1
या: VBoxManage guestproperty get <vmname> "/VirtualBox/GuestInfo/Net/0/V4/IP"
टॉड वाल्टन

9

सबसे पहले यह सुनिश्चित करें कि आपने VirtualBox Extension Pack स्थापित किया है या नहीं तो स्थापित करें।

उदाहरण के लिए (उबंटू के लिए)

> wget http://download.virtualbox.org/virtualbox/4.2.12/Oracle_VM_VirtualBox_Extension_Pack-4.2.12-84980.vbox-extpack
> sudo VBoxManage extpack install ./Oracle_VM_VirtualBox_Extension_Pack-4.2.12-84980.vbox-extpack

या से

https://www.virtualbox.org/wiki/Downloads

उसके बाद आप VM का IP प्राप्त कर सकते हैं

VBoxManage guestproperty enumerate <_name_of_VM_> | grep IP | grep -o -w -P -e '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'

3
अभी भी मेरे लिए आईपी प्रदर्शित नहीं करता है
जोश नानकिन

@JoshNankin क्या आपने इसे हल किया?
user3933607 21

@JoshNankin क्या VBoxManage Guestproperty enumerate <_name_of_VM_> | grep IP आपको देता है?
वीवल

OSX के लिए - VBoxManage गेस्टप्रॉपर्टी एन्यूमरेट 4ab1029f-23ff-4c5c-b4bd-3b6d68aa7cc0 | grep आईपी | grep -oE "\ b ([0-9] {1,3} \।) {3} [0-9] {1,3} \ b" IP के लिए Rexx मैंने stackoverflow.com/questions/11482951/…
weivall

5

मुझे पता है कि मुझे इस पार्टी में देर हो गई है, लेकिन यह वर्चुअलबॉक्स 5.0.6 के साथ काम करेगा।

यह वर्चुअल मशीन चलाने की सूची को हथियाने के लिए VBoxManage का उपयोग करता है, एक पाश में उनके गुणों पर सवाल उठाता है, और एक सुंदर तरीके से आईपी पते प्रदर्शित करता है।

#!/bin/bash

for f in $(VBoxManage list runningvms | awk -F\" '{print $2}'); do
      echo "$f:"
      VBoxManage guestproperty enumerate "$f" | grep IP
    done

1

आप राउटर में डीएचसीपी टेबल देख सकते हैं, स्टार्टअप से पहले और बाद में और उनकी तुलना करें। यदि राउटर कंप्यूटर का नाम प्रदर्शित करता है, तो यह निश्चित रूप से बहुत आसान बनाता है। यह शायद एक परिष्कृत समाधान नहीं है, लेकिन यह काम करता है।

अधिकांश राउटर डायनेमिक पते असाइन करते हैं, लेकिन वे अधिकतर समय के लिए एक मशीन या वीएम (राउटर अंतर को नहीं जानते) देते रहते हैं। यदि आप वर्चुअलबॉक्स में एक वीएम की नकल करते हैं, तो आप एक नया मैक पता सेट करना चुन सकते हैं, जिस तरह से राउटर वीएम की पहचान करता है।


0

मुझे अजगर में भी ऐसा ही काम था। संभवतः यह मददगार होगा।

pip install pyvbox

और फिर अजगर में:

import virtualbox

vbox = virtualbox.VirtualBox()
vm = vbox.find_machine('running_vb_machine_name')
res = vm.enumerate_guest_properties('/VirtualBox/GuestInfo/Net/0/V4/IP')
ip = res[1][0]
print ip

0

मैंने अतिथि के सक्रिय निक पर एक पैकेट ट्रेस शुरू करने के लिए controlvm विकल्प का उपयोग किया और स्थानीय फ़ाइल को वायरशार्क के साथ खोला। मेहमानों का आईपी पता वहां होगा।

VBoxManage controlvm <vm-name> nictracefile<1-N> /full/path/to/file
VBoxManage controlvm <vm-name> nictrace<1-N> on

wireshark /full/path/file

जब आप कर लें तो ट्रेस को अक्षम करना न भूलें।

VBoxManage controlvm <vm-name> nictrace<1-N> off

-4
VMNAME="..."; # save ID of VM  in VMNAME variable
vboxmanage guestproperty enumerate $VM_NAME|grep IP|cut -f2 -d,|cut -f2 -d:

5
हम पर्याप्त उत्तरों की तलाश कर रहे हैं जो कुछ स्पष्टीकरण और संदर्भ प्रदान करते हैं। कृपया केवल दो-पंक्ति कोड का उत्तर न दें; समझाएं कि आपका उत्तर सही क्यों है, आदर्श रूप से उद्धरणों के साथ। स्पष्टीकरण को शामिल नहीं करने वाले उत्तरों को हटाया जा सकता है। लेकिन साथ ही, आपका उत्तर तुच्छ प्रारूपण मतभेदों को छोड़कर पिछले उत्तरों के बराबर है। कृपया जवाब न दें जब तक कि आपके पास योगदान देने के लिए वास्तव में कुछ नया न हो।
जी-मैन का कहना है कि 'मोनिका की बहाली'

:)। आपका स्वागत है .. बिल्कुल नहीं
अब्देनूर टुमी

@ जी-मैन: यदि आपके पास हजार खाते हैं, तो उन्हें लॉग-इन करें और वोट-डाउन करें। दुर्भाग्य से, मैं जवाब नहीं दूंगा।
अब्देनूर टुमी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.