वर्चुअलबॉक्स "पोर्ट फॉरवर्ड" गेस्ट से होस्ट तक [बंद]


162

यहाँ मेरा सेटअप है:

- Host: Windows XP
- Guest: Ubuntu 10.04
- Networking: NAT

मैं अपाचे वेब सर्वर को अतिथि पर सेट कर रहा हूं, लेकिन मैं विंडोज मशीन पर ऐसा करने में सक्षम होना चाहता हूं:

- go to the browser, type http://localhost:8000

इसके अलावा, मैंने अपनी नेटवर्किंग को ब्रिज करने के लिए बदलने की कोशिश की और मुझे एक नया आईपी मिला। लेकिन जब मैंने http: //: 8000 करने की कोशिश की, तो यह कहता है कि यह कनेक्ट नहीं हो सका।


1
मुझे भी यही समस्या थी। बाहर निकले अतिथि ओएस में एक सक्रिय फ़ायरवॉल था जो पोर्ट 80 को अवरुद्ध कर रहा था।
निकोलस शैंक्स

149
एक वेब डेवलपर के रूप में जो मेरे दैनिक वर्कफ़्लो के भाग के रूप में वर्चुअलबॉक्स का उपयोग करता है, इस विषय के रूप में चिह्नित होने से असहमत है। कृपया फिर से विचार करें।
sparecycle

1
1. वीएम पर जाएं 2. ifconfig (स्थानीय आईपी प्राप्त करें - 10.0.2.X होना चाहिए) 3. ssh 10.0.2.2 मेजबान मशीन पर जाने के लिए
मार्क रॉबर्ट्स

@deeperDATA यह एक वेब डेवलपर की नौकरी के दायरे में हो सकता है, लेकिन स्टैक ओवरफ्लो का मतलब नौकरी के हर हिस्से को घेरना नहीं है। यह हमारे पेशे की जटिलता का एक वसीयतनामा है कि इसकी आवश्यकताएं कई स्टैक एक्सचेंज साइटों को फैलाती हैं।
केविन लॉरेंस

1
इसे काम करने में मुझे लंबा समय लगा। हमारी समस्या अतिथि प्रणाली में एप्लिकेशन के आईपी बाइंडिंग की थी, यह मशीन के नाम से बंधी हुई थी, जिसका अर्थ है ubuntu में 127.0.1.1। हमने बाइंडिंग को 0.0.0.0 में बदल दिया। पोर्ट अग्रेषण सेटिंग्स: होस्ट IP = DNS होस्ट आईपी, होस्ट पोर्ट = 8080, अतिथि आईपी = eth0 के आईपी, अतिथि पोर्ट = 8080
slowy

जवाबों:


222

नेटवर्क संचार मेजबान -> अतिथि

अतिथि से कनेक्ट करें और आईपी पते का पता लगाएं:

ifconfig 

परिणाम का उदाहरण (आईपी पता 10.0.2.15 है):

eth0      Link encap:Ethernet  HWaddr 08:00:27:AE:36:99
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0

Vbox उदाहरण विंडो पर जाएं -> मेनू -> नेटवर्क एडेप्टर:

  • एडॉप्टर NAT होना चाहिए
  • "पोर्ट फ़ॉरवर्डिंग" पर क्लिक करें
  • नया रिकॉर्ड डालें (+ आइकन)
    • होस्ट आईपी के लिए 127.0.0.1 दर्ज करें, और अतिथि आईपी पते के लिए आप प्रचलित हैं। चरण (मेरे मामले में यह 10.0.2.15 है)
    • आपके मामले में पोर्ट 8000 का है - इसे दोनों पर डालें, लेकिन आप चाहें तो होस्ट पोर्ट बदल सकते हैं

होस्ट सिस्टम पर जाएँ और इसे ब्राउज़र में आज़माएँ:

http://127.0.0.1:8000

या आपके नेटवर्क का आईपी पता (होस्ट मशीन पर चलाकर पता करें: ipconfig)।

नेटवर्क संचार अतिथि -> होस्ट

इस स्थिति में पोर्ट अग्रेषण की आवश्यकता नहीं है, संचार LAN पर होस्ट को वापस चला जाता है।

होस्ट मशीन पर - अपना नेटव्यू आईपी पता लगाएँ:

ipconfig

परिणाम का उदाहरण:

IP Address. . . . . . . . . . . . : 192.168.5.1

अतिथि मशीन पर आप सीधे मेजबान के साथ संवाद कर सकते हैं, उदाहरण के लिए इसे पिंग के साथ जांचें:

# ping 192.168.5.1
PING 192.168.5.1 (192.168.5.1) 56(84) bytes of data.
64 bytes from 192.168.5.1: icmp_seq=1 ttl=128 time=2.30 ms
...

11
दोनों पोर्ट 8000 नहीं होंगे। होस्ट पोर्ट 8000 या व्हाट्सएप यू होगा, लेकिन गेस्ट पोर्ट 80 होना चाहिए
यासीन

5
इस मामले में वीएम से होस्ट तक पहुंचना वीएम के पास जाकर और इसके आईपी पते (नीचे के रूप में 10.0.2.15) प्राप्त करना संभव है। वीएम से होस्ट मशीन पर जाने के लिए, आईपी 10.0.2.2 (कन्वेंशन द्वारा) है।
मार्क रॉबर्ट्स

5
यदि अतिथि के लिए NAT का उपयोग किया जा रहा है ... यदि होस्ट पर चलने वाली सेवा केवल 127.0.0.1 के लिए बाध्य है, तो अतिथि उस सेवा से कनेक्ट करने के लिए होस्ट के सार्वजनिक आईपी का उपयोग नहीं कर सकता है (उदाहरण सेवा: privoxy)। इसके बजाय आपको मार्क द्वारा उल्लिखित 10.0.2.2 का उपयोग करने की आवश्यकता है, या जो भी 'मार्ग -n' (अतिथि पर रन) डिफ़ॉल्ट गेटवे के रूप में दिखाता है।
देसम


2
मैंने पाया है कि होस्ट या अतिथि IP पते निर्दिष्ट करना आवश्यक नहीं है, और आप केवल बक्से खाली छोड़ सकते हैं। यद्यपि यदि आप केवल लोकलहोस्ट से कनेक्ट करना चाहते हैं, तो होस्ट के रूप में 127.0.0.1 को रखना शायद एक अच्छा विचार है।
mwfearnley

14

यह संभव नहीं है। localhostहमेशा स्थानीय ऑपरेटिंग सिस्टम पर लूपबैक डिवाइस में चूक ।
जैसे-जैसे आपकी वर्चुअल मशीन अपना ऑपरेटिंग सिस्टम चलाती है, उसका अपना लूपबैक डिवाइस होता है जिसे आप बाहर से एक्सेस नहीं कर सकते।

यदि आप इसे ब्राउज़र में उदाहरण के लिए एक्सेस करना चाहते हैं, तो इसके बजाय स्थानीय IP का उपयोग करके इसे कनेक्ट करें:

http://192.168.180.1:8000

यह सिर्फ एक उदाहरण है, आप ifconfigअतिथि ऑपरेटिंग सिस्टम में एक शेल पर एक कमांड जारी करके वास्तविक आईपी का पता लगा सकते हैं ।


मैं यह भी कोशिश की, लेकिन दोनों NAT और पुल के लिए काम नहीं किया। अपाचे लॉग इन अतिथि में कोई त्रुटि नहीं देता है और अपाचे अतिथि में ऊपर और चल रहा है।
कारमेन

क्या आप सुनिश्चित हैं कि आप सही IP का उपयोग कर रहे हैं? आप वर्चुअल मशीन के अंदर से पते तक पहुंचने की कोशिश कर सकते हैं। यदि वह विफल रहता है, तो आप या तो एक गलत आईपी का उपयोग कर रहे हैं या आपके अपाचे को 8080 पोर्ट पर सुनने के लिए सेट नहीं किया गया है।
क्रिस

मेरे लिए काम किया - धन्यवाद!
मैट फियर जूल

मेरे लिए भी काम किया। होस्ट ओएस आईपी पते के साथ "लोकलहोस्ट" को बदलने से पहले, मुझे हमेशा "सर्वर ने आपकी कुंजी से इनकार कर दिया" और "एक्सेस से वंचित" किया गया था, जो कि LogLevel DEBUG3 में / etc / ssh / sshd_config
VR

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