मैं वर्चुअलबॉक्स मेहमानों को होस्ट का वीपीएन कनेक्शन कैसे साझा कर सकता हूं?


50

सवाल

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

प्रसंग

मेरे पास निम्न नेटवर्क लेआउट है:

मेरे वर्चुअलबॉक्स वर्चुअल मशीन के लिए eth0 पर सबनेट 172.16.0.0/20।

सबनेट 192.168.0.0/24 पर eth0: 0 जो गेटवे 192.168.0.1 से जुड़ता है जिसमें इंटरनेट की सुविधा है।

यह / etc / नेटवर्क / इंटरफेस फ़ाइल में दिखाया गया है:

auto lo
iface lo inet loopback

# This is the subnet dedicated to VB
auto eth0
iface eth0 inet static
    address 172.16.0.1
    netmask 255.255.0.0
    gateway 192.168.0.164
    dns-nameservers 8.8.8.8

# normal DHCP internet
auto eth0:0
iface eth0:0 inet static
    address 192.168.0.164
    netmask 255.255.255.0
    dns-nameservers 8.8.8.8
    gateway 192.168.0.1

Eth0 पर पैकेट को eth0: 0 के माध्यम से अग्रसारित किया जाता है और सामान्य इंटरनेट कनेक्टिविटी ठीक है। हालाँकि जब मैं इस राउटर पर अपनी वीपीएन सुरंग शुरू करता हूं, तो VM0 सबनेट (अभी तक राउटर के लिए बना रहता है) पर वीएम के लिए इंटरनेट कनेक्टिविटी खो जाती है।

सुरंग सक्रिय होने पर नीचे ifconfig का उत्पादन होता है:

eth0      Link encap:Ethernet  HWaddr 00:1f:bc:01:c3:ab  
          inet addr:172.16.0.1  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::21f:bcff:fe01:c3ab/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:165426 errors:0 dropped:0 overruns:0 frame:0
          TX packets:182601 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:208264321 (208.2 MB)  TX bytes:16660945 (16.6 MB)
          Interrupt:16 

eth0:0    Link encap:Ethernet  HWaddr 00:1f:bc:01:c3:ab  
          inet addr:192.168.0.164  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:16 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:381963 errors:0 dropped:0 overruns:0 frame:0
          TX packets:381963 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:22755054 (22.7 MB)  TX bytes:22755054 (22.7 MB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.10  P-t-P:10.8.0.9  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

मुझे संदेह है कि समाधान के पास रूटिंग टेबल के साथ कुछ करना होगा । सुरंग के सक्रिय होने पर यह निम्न दर्शाता है :

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.8.0.9        128.0.0.0       UG    0      0        0 tun0
default         192.168.0.1     0.0.0.0         UG    100    0        0 eth0
10.8.0.0        10.8.0.9        255.255.255.0   UG    0      0        0 tun0
10.8.0.9        *               255.255.255.255 UH    0      0        0 tun0
37.139.23.49    192.168.0.1     255.255.255.255 UGH   0      0        0 eth0
128.0.0.0       10.8.0.9        128.0.0.0       UG    0      0        0 tun0
link-local      *               255.255.0.0     U     1000   0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0

और निम्नलिखित जब सुरंग निष्क्रिय :

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.1     0.0.0.0         UG    100    0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0

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

यहाँ छवि विवरण दर्ज करें

VMs /etc/network/interfacesफ़ाइल में से एक:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 172.16.0.3
        netmask 255.255.0.0
        network 172.16.0.0
        broadcast 172.16.255.255
        gateway 172.16.0.1
        dns-nameservers 8.8.8.8

VirtualBox में आपके VM के नेटवर्क कैसे कॉन्फ़िगर किए गए हैं?
zwets

eth0 के पुलों - सवाल में जानकारी जोड़ी गई।
प्रोग्रामर

मैं जानता हूँ कि यह वास्तव में अपने प्रश्न का उत्तर नहीं है, लेकिन मेरे लिए यह पता चला बजाय 2 VPN कनेक्शन स्थापित करने के लिए आसान हो करने के लिए: 1 मेजबान मशीन से दूसरे अतिथि मशीन से,
Zhenya

जवाबों:


28

यह Bridged Networking सेटअप में काम नहीं करेगा । से VirtualBox के प्रलेखन :

ब्रिजिंग नेटवर्किंग

यह अधिक उन्नत नेटवर्किंग आवश्यकताओं जैसे कि नेटवर्क सिमुलेशन और एक अतिथि में सर्वर चलाने के लिए है। जब सक्षम किया जाता है, तो वर्चुअलबॉक्स आपके स्थापित नेटवर्क कार्डों में से एक से कनेक्ट होता है और सीधे नेटवर्क पैकेट का आदान-प्रदान करता है, जो आपके होस्ट ऑपरेटिंग सिस्टम के नेटवर्क स्टैक को दरकिनार करता है।

चूंकि आपकी वर्चुअल मशीनें eth0सीधे उपयोग कर रही हैं, इसलिए वे इस tun0पर चलने वाली सुरंग के इंटरफ़ेस से अनजान हैं । आपको एक अलग वर्चुअल नेटवर्किंग कॉन्फ़िगरेशन का उपयोग करने की आवश्यकता होगी।

आपके पास (दूसरों के बीच) ये विकल्प हैं:

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

  • VMs और होस्ट युक्त एक उचित सबनेट बनाने के लिए होस्ट-ओनली नेटवर्किंग का उपयोग करें । इस अंतरफलक विन्यास अब आप VMs में है में कोई बदलाव नहीं की आवश्यकता होगी, लेकिन आप प्रवेश द्वार और रूटर होने के लिए मेजबान की स्थापना करने की आवश्यकता होगी, और (चाहे इसकी भर में बाहर करने के लिए इसे नेट VMs बनाने eth0या tun0)।

  • उपरोक्त को मिलाएं: प्रत्येक वीएम को दो इंटरफेस दें, एक बाहरी दुनिया के लिए गेटवेइंग (वर्चुअलबॉक्स एनएटी के पार ) और दूसरा होस्ट-ओनली लैन से जुड़ा हो ।

  • VirtualBox के प्रयोगात्मक NAT नेटवर्किंग कॉन्फ़िगरेशन का प्रयास करें। अपडेट 2019: यह सुविधा परिपक्व होने के बाद से है: मेजबान के NAT से जुड़ी और Paravirtualized network (virtio-net) एडेप्टर प्रकार चुनें।


34

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


1
यह मेरे लिए बहुत अच्छा काम किया, धन्यवाद! वर्चुअल बॉक्स 5.0.24 के साथ मेरे अतिथि और विंडोज 10 होस्ट के रूप में Ubuntu 16.04LTS का उपयोग करना।
womp

1
प्रतिभाशाली! यह मेरे विंडोज 10 होस्ट और VirtualBox (5.0.26) CentOS 7 अतिथि के लिए काम करता है।
जकी

1
गजब का! स्वीकृत उत्तर होना चाहिए। युगों से इस समाधान की तलाश में था। आपका बहुत बहुत धन्यवाद!
15

1
यहाँ सबसे अच्छा जवाब!
माइक

क्यों बिल्ली यह स्वीकार किए जाते हैं जवाब नहीं है? इतना आसान और सही!
माइकल गोल्डस्मिन

6

हर जगह इस समाधान की तलाश करने के बाद, मुझे आखिरकार एक काम करने वाला समाधान मिला, जिसमें बहुत सारे कॉन्फ़िगरेशन परिवर्तनों की आवश्यकता नहीं है और वास्तव में सरल है। डिफ़ॉल्ट NAT नेटवर्क का उपयोग करें और इसे टर्मिनल में टाइप करें:

VBoxManage modifyvm "VM name" --natdnsproxy1 on

स्रोत: https://www.virtualbox.org/ticket/13993


4

एक ही समस्या थी। यहाँ है कि मैंने इसे कैसे हल किया:

  1. अतिथि सिस्टम के नेटवर्क प्रकार को "केवल होस्ट करें" में बदलें
  2. ifconfig vboxnet0इसे खोजने के लिए होस्ट के आईपी के लिए अतिथि बिंदु का डिफ़ॉल्ट गेटवे बनाएं ।

अंतिम चरण vboxnet0 से आने वाले पैकेट को आपके वीपीएन में रूट कर रहा है।

यदि आप वीपीएन के माध्यम से सभी ट्रैफ़िक को रूट करते हैं:

iptables -t nat -A POSTROUTING -s 192.168.5.0/24 ! -d 192.168.5.0/24 -o tun0 -j SNAT --to-source 10.8.0.5

10.8.0.5आपका tun0 गेटवे कहां है और 192.168.5.0/24आपका vboxnet0 नेटवर्क रेंज है।

यदि आप केवल वीपीएन के माध्यम से कुछ ट्रैफ़िक को रूट करते हैं:

iptables -t nat -A POSTROUTING -s 192.168.5.0/24 ! -d 192.168.5.0/24 -o tun0 -j SNAT --to-source 10.8.0.5
iptables -t nat -A POSTROUTING -s 192.168.5.0/24 ! -d 192.168.5.0/24 -o wlan0 -j SNAT --to-source 192.168.43.95

जहाँ 10.8.0.5आपका tun0 गेटवे है और 192.168.43.95आपका wlan0गेटवे है और 192.168.5.0/24आपका vboxnet0 नेटवर्क रेंज है।

नोट: यह समाधान अतिथि ओएस को उसी तरह से व्यवहार करने की अनुमति देता है जिस तरह होस्ट ओएस का इलाज किया जाता है। केवल होस्ट ओएस में वीपीएन के माध्यम से जाने के लिए कॉन्फ़िगर किए गए आईपी इसके माध्यम से अतिथि में जाएंगे।


3

यहां मेजबान वीपीएन का उपयोग करके योनि बक्से के लिए कुछ उपयोगी जानकारी दी गई है। मूल रूप से आपको natdnshostresolver1 विकल्प सेट करने की आवश्यकता है ध्यान दें कि यह वैग्रंट के public_network सेटिंग का उपयोग करते समय काम नहीं करेगा ।

  config.vm.provider :virtualbox do |vb|
      # ---- other options....
      vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end

http://renier.morales-rodriguez.net/post/90674523562/sharing-host-vpn-with-virtualbox-guest http://blog.geekslikeshinythings.com/05/sharing-host-vpn-with-vagrant -rob-allen.html


1
पहले लिंक पर मेरे लिए समाधान था। यह दिखाता है कि VM के लिए natdnshostresolver1 विकल्प को कैसे चालू किया जाए।
kol
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.