VirtualBox में, मैं होस्ट-केवल वर्चुअल मशीन कैसे सेट कर सकता हूं जो इंटरनेट तक पहुंच सकता है?


98

VirtualBox के साथ वर्चुअल मशीन स्थापित करने में, मैं अक्सर निम्नलिखित विशेषताओं को चाहता हूं

  • vm में एक स्थिर आईपी है
  • होस्ट पोर्ट अग्रेषण के बिना vm तक पहुँच सकता है
  • vm इंटरनेट का उपयोग कर सकते हैं
  • मैं अपने लैपटॉप को नेटवर्क से नेटवर्क पर ले जा सकता हूं (उदाहरण के लिए घर से कार्यालय तक कॉफ़ेफ़िश तक) वीएम को सुरक्षित करने या पुन: व्यवस्थित करने की चिंता किए बिना।

वर्चुअलबॉक्स नेटवर्क कनेक्शन विधियों में से कोई भी इन आवश्यकताओं को अपने दम पर संतुष्ट नहीं करता है।


  • यदि आप होस्ट से vm से कनेक्ट करना चाहते हैं तो NAT को पोर्ट फ़ॉरवर्डिंग की आवश्यकता होती है।

  • होस्ट-ओनली
    vm इंटरनेट का उपयोग नहीं कर सकता, जब तक कि होस्ट राउटर नहीं है।

  • Bridged
    नेटवर्क को vm एक्सपोज़ करता है; पोर्टेबल नहीं है।

जवाबों:


110

मैं vm पर दो एडेप्टर सेट करके अपनी इच्छानुसार सेटअप प्राप्त कर सकता हूं।

VirtualBox 4.2.12
Ubuntu 12.04 अतिथि

VirtualBox में> वरीयताएँ> नेटवर्क, एक होस्ट-ओनली नेटवर्क सेट करें।

माइन को vboxnet0 कहा जाता है, इसे मैन्युअल रूप से कॉन्फ़िगर किया गया है:
आईपी ​​192.168.56.1
नेटमास्क 255.255.255.0
कोई dhcp नहीं

वर्चुअलबॉक्स नेटवर्क कॉन्फ़िगरेशन वर्चुअलबॉक्स नेटवर्क कॉन्फ़िगरेशन

फिर, वर्चुअल मशीन के लिए नेटवर्क सेटिंग्स में, दो एडेप्टर सेट करें:

एडाप्टर 1
होस्ट केवल, vboxnet0

एडॉप्टर 2
NAT

वर्चुअल मशीन बूट करें और कंसोल VirtualBox के माध्यम से लॉग इन करें।

अपने एडेप्टर को देखने के लिए इसे चलाएं:

ls /sys/class/net

मेरे मामले में एडेप्टर को eth1 और eth2 (और लो, लूपबैक इंटरफ़ेस) नाम दिया गया था।

फिर, अपने नेटवर्क कॉन्फ़िगरेशन को संपादित करें।

sudoedit /etc/network/interfaces


# The loopback network interface
auto lo
iface lo inet loopback

# Host-only interface
auto eth1
iface eth1 inet static
        address         192.168.56.20
        netmask         255.255.255.0
        network         192.168.56.0
        broadcast       192.168.56.255

# NAT interface
auto eth2
iface eth2 inet dhcp

ध्यान दें कि eth1कोई डिफ़ॉल्ट गेटवे निर्दिष्ट नहीं है। eth2dhcp से डिफ़ॉल्ट गेटवे मिलेगा।


अपडेट मार्च 2018

अपडेट किए गए संस्करण के लिए @ Hugo14453 से यह उत्तर देखें जो Ubuntu 17.10 और नए के साथ काम करता है।


1
अद्यतन: वर्चुअलबॉक्स 4.3 ने एक NAT सेवा शुरू की है जो ऐसा दिखता है कि यह दो इंटरफेस की आवश्यकता को कम कर सकता है। 6.4। नेटवर्क पता अनुवाद सेवा
ईसाई लांग

4
इससे मुझे बहुत मदद मिली, मैं विकास के लिए वर्चुअलबॉक्स का उपयोग करता हूं, और जब मैं अपने घर में होता हूं, तो सब कुछ सही तरीके से काम करता है क्योंकि मेरे पास अपनी पसंद के लिए नेटवर्क सेटअप है, दुःस्वप्न तब शुरू होता है जब मैं दूसरे नेटवर्क (परिवार, कंपनियों) में जाता हूं ... ), मुझे वेबसाइट के URL बदलने हैं, कुछ सिस्टम फाइल्स को डिलीट करना है, रिबूट करना है मुझे नहीं पता कि कितनी बार और लिस्ट चलती है। यह समाधान आपके वर्तमान नेटवर्क की परवाह नहीं करता है यही कारण है कि मुझे यह पसंद है ... बस अपने पीसी को किसी भी नेटवर्क पर प्लग करें और अपने काम पर ध्यान दें।
नबील कादिमी

1
धन्यवाद। होस्ट-केवल इंटरफ़ेस के लिए गेटवे पते को परिभाषित नहीं करने से मेरे मुद्दों का समाधान हुआ।
फ्लोरियन

2
उत्तम। / etc / नेटवर्क / इंटरफेस कॉन्फिग महत्वपूर्ण थी !!!!
बायरन व्हिटलॉक

1
"ध्यान दें कि eth1 में कोई डिफ़ॉल्ट गेटवे निर्दिष्ट नहीं है। dhcp से eth2 को डिफ़ॉल्ट गेटवे मिलेगा।" <- इस टिप्पणी कुंजी है।
पेज

16

मैं अपनी समस्या को क्रिश्चियन लॉन्ग सॉल्यूशन के मिश्रण से हल कर सकता था। मैंने 2 एडेप्टर जोड़े:

एडाप्टर 1 - NAT

एडाप्टर 2 - केवल होस्ट, vboxnet0

वीएम के इंटरफेस फ़ाइल में एकमात्र अंतर था:

sudoedit /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback
# NAT
auto eth0
iface eth0 inet dhcp
# Host only
auto eth1
iface eth1 inet dhcp

वर्चुअलबॉक्स नेटवर्क कॉन्फिग में मैंने डीएचसीपी चेक किया।

VM रिबूट के बाद सबकुछ ठीक हो गया।


यह मेरे लिए काम करता है, लेकिन मैं चाहता हूं कि VMs के पास स्थिर IP पते हों। जिस मिनट मैं ऐसा करता हूं, इंटरनेट काम करना बंद कर देता है। अगर मैं दोनों को डीएचसीपी के साथ सेट करता हूं, तो यह ठीक काम करता है। मैं होस्ट-केवल इंटरफ़ेस को स्थिर आईपी कैसे प्राप्त करूं?
उमर फारूक ख्वाजा

केवल एक ही है कि काम किया। धन्यवाद। +1
जॉर्ज कैम्पोस

14

एक और सरल तरीका है कि हमें एक नया NAT एडाप्टर बनाने की आवश्यकता नहीं है

  1. होस्ट मशीन पर, कृपया निम्नलिखित iptables नियम जोड़ें। यह होस्ट के माध्यम से और इंटरनेट पर पैकेट को अग्रेषित करेगा:

    sudo iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT 
    
    sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    
    sudo iptables -A POSTROUTING -t nat -j MASQUERADE
    
  2. आपको निम्नलिखित आदेश जारी करके मेजबान पर आईपी अग्रेषण सक्षम करने की आवश्यकता होगी:

    sudo sysctl -w net.ipv4.ip_forward=1
    

यह केवल लिनक्स होस्ट पर काम करता है।
डेरेक महार

हमें "dnsmasq" सेवा चलाने की आवश्यकता है। लिंक unix.stackexchange.com/a/384187/61742 में हमें @Danatela द्वारा सुझाए गए बारे में पूरी जानकारी है। धन्यवाद!
एडुआर्डो लुसियो

1
@EduardoLucio लॉन्ग बुई को क्रेडिट दें। मैंने इसे और अधिक पठनीय बनाने के लिए इस पोस्ट को संपादित किया।
Danatela

@Long Bui आपके योगदान के लिए धन्यवाद! यूपी! यूपी! यूपी! यूपी! यूपी! यूपी! = डी
एडुआर्डो लुसियो

12

Ubuntu 17.10.1 में नेटवर्क कॉन्फ़िगरेशन बदल गया है। अब आप नेटप्लान कॉन्फ़िगरेशन का उपयोग करते हैं।

मैंने यहां इस गाइड का अनुसरण किया

ईसाई के उत्तर के प्रवास के रूप में, निम्नलिखित कार्य करें:

अपने होस्ट-ओनली एडॉप्टर कॉन्फिगरेशन को होल्ड करने के लिए / etc / netplan के अंदर एक नई कॉन्फिगर फाइल बनाएं।

जैसे sudo nano /etc/netplan/02-netcfg.yaml

192.168.56.12 के स्थिर आईपी को कॉन्फ़िगर करने के लिए निम्नलिखित दर्ज करें जहां enp0s3आपके होस्ट-ओनली एडेप्टर का नाम है।

network:
    version: 2
    renderer: networkd
    ethernets:
        enp0s3:
            addresses:
                - 192.168.56.12/24
            dhcp4: no

फिर निम्नलिखित दो कमांड चलाएं:

sudo netplan generate
sudo netplan apply

NAT विन्यास के बिना काम करना चाहिए, ifconfigपरिणाम देखने के लिए दौड़ें :

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.12  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::a00:27ff:fe06:6cdd  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:06:6c:dd  txqueuelen 1000  (Ethernet)
        RX packets 252  bytes 23076 (23.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 208  bytes 30015 (30.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.3.15  netmask 255.255.255.0  broadcast 10.0.3.255
        inet6 fe80::a00:27ff:fe4d:a6b8  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:4d:a6:b8  txqueuelen 1000  (Ethernet)
        RX packets 95  bytes 94894 (94.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 85  bytes 7436 (7.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

1
धन्यवाद! मैंने अपने पुराने उत्तर में एक अपडेट अनुभाग जोड़ा और इस नई जानकारी से जुड़ा।
क्रिश्चियन लॉन्ग

मैंने आपके समाधान का अनुसरण किया है, लेकिन enp0s8 के लिए nat समर्थन याद आती है। मैंने नेटप्लान में enp0s8 के लिए मैन्युअल रूप से सक्षम dhcp4 जोड़ा है और अंत में enp0s3 और enp0s8 दोनों प्राप्त करें। उम्मीद है कि यह किसी की मदद करेगा।
१२:५० पर Dzmitry Prakapenka

3

मैंने अभी 2 एडेप्टर जोड़े हैं:

एडाप्टर 1 होस्ट केवल, vboxnet0

एडॉप्टर 2 NAT

और यह सही काम करता है, मैं मेजबान से वर्चुअल मशीन तक पहुंच सकता हूं, और मेरे पास vm पर इंटरनेट है।


2

हाँ, मुझे यह समस्या थी यह एक कुल दर्द था! लेकिन मैंने अपने भौतिक पीसी पर केवल स्क्वीड कैश प्रॉक्सी सर्वर स्थापित करके इसे हल किया, और इस तरह - मेरे होस्ट-केवल इंटरनेट वर्चुअलबॉक्स पीसी इंटरनेट से जुड़ सकते हैं!

मैंने यहां एक त्वरित 3 मिनट का गाइड किया - जो भी चाहता है कि यह कैसे काम करता है! http://b0zmeister.wordpress.com/allowing-host-only-virtualbox-guest-to-connect-to-the-internet/


मेरे लिए यह बहुत अच्छा रहा, साझा करने के लिए धन्यवाद। यह अब तक का सबसे सरल तरीका है जिससे यह सब काम कर सके।
laurent

हाय लॉरेंट - कोई समस्या नहीं - खुशी है कि यह मदद की! एक अलग नेटवर्क से
वर्चुअलबॉक्स

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