होस्ट सिस्टम से एक अतिथि वीएम से कैसे जुड़ें?


15

मेरे पास एक वीएम वेबसर्वर सेटअप है और मैंने अपाचे को स्थापित और शुरू किया है। वीएम में एक ब्रिड्ड नेटवर्क इंटरफ़ेस है और इसे 192.168.0.2 का उपयोग करके होस्ट से पिंग किया जा सकता है।

हालाँकि, यदि मैं होस्ट मशीन पर ब्राउज़र में उसी आईपी पते को टाइप करता हूं, तो मुझे VM पर उत्पन्न डिफ़ॉल्ट एपाचे पृष्ठ को देखने की उम्मीद थी, लेकिन इसके बजाय, मैं can't connect to 192.168.0.2मेजबान मशीनों के ब्राउज़र में मिलता हूं ।

मैं स्पष्ट रूप से कुछ याद किया है। किसी को भी पता है कि मैंने क्या याद किया या गलत किया है?

वीएम से आउटपुट netstat -tnlp

tcp     0     0 0.0.0.0:22        0.0.0.0:*     LISTEN     950/sshd
tcp     0     0 127.0.0.1:25      0.0.0.0:*     LISTEN    1026/master
tcp     0     0 :::22                  :::*     LISTEN     904/sshd
tcp     0     0 ::1:25                 :::*     LISTEN     980/master

नेटवर्क एक्टिविटी / कनेक्टिविटी के बारे में मैं जो सोच रहा हूँ, वह किसी भी तरह का होगा।

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


यदि आप केवल देखते हैं :::80, तो अपाचे केवल आईपीवी 6 कनेक्शन के लिए सुन रहा है। क्या आपने अपने Listenनिर्देशों की जाँच करने की कोशिश की है ?
लेकेनस्टाइन

यह सत्यापित -pकरने के netstatलिए ध्वज जोड़ने का प्रयास करें कि आप अपाचे वास्तव में पोर्ट 80 पर सुन रहे हैं, और कुछ अन्य सेवा नहीं। क्या आप curl localhostअतिथि से भाग सकते हैं? क्या grep -C3 -rni Listen /etc/httpd/दिखाता है?
लेकेन्स्टाइन

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

जवाबों:


14

अंक # 1 - वीएम नेटवर्किंग प्रकार

नेटवर्किंग के 3 तरीके हैं:

  1. नेट
  2. केवल होस्ट करें
  3. पाटने

उन्हें स्थापित करने पर विवरण

प्रत्येक का उपयोग कब करें?

  • # 1 : फेसबुक / वेब ऐप्स के विकास के लिए जो अन्य सर्वरों पर हैं
  • # 2 : यदि आप अपना खुद का ऐप बनाना चाहते हैं, और इसे वर्चुअलबॉक्स होस्ट (केवल अतिथि वीएम नहीं) से परीक्षण करें
  • # 3 : यदि आप एक ऐप बनाना चाहते हैं और LAN पर अन्य सिस्टम से इसका परीक्षण कर सकते हैं

अंक # 2 - फ़ायरवॉल ब्लॉकिंग?

इस आधार पर कि आप किस डिस्ट्रो का उपयोग कर रहे हैं, फ़ायरवॉल आपके अपाचे उदाहरण तक पहुँचने से आपके वेब ब्राउज़र को अवरुद्ध कर सकता है। यह समझ में आएगा कि आप सिस्टम को पिंग करने में सक्षम हैं, लेकिन इसे पोर्ट 80 के माध्यम से एक्सेस नहीं कर सकते हैं, जो कि अपाचे सुन रहा है वह पोर्ट है।

अस्थायी रूप से इसे अक्षम करना

CentOS पर आप इसे निष्क्रिय करने के लिए इस कमांड का उपयोग करते हैं।

$ /etc/init.d/iptables stop

जाँच करें कि अपाचे सुन रहा है

आप यह भी पुष्टि कर सकते हैं कि यह इस पोर्ट पर सुन रहा है।

$ netstat -antp | grep :80 | head -1 | column -t
tcp  0  0  :::80  :::*  LISTEN  3790/httpd

फ़ायरवॉल की पुष्टि करें

फ़ायरवॉल की पुष्टि की जा सकती है कि यह चौड़ा है।

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination      

यदि यह आपकी समस्या को हल करता है तो आप स्थायी रूप से एक नियम जोड़ सकते हैं जो टीसीपी पोर्ट 80 के माध्यम से यातायात की अनुमति देता है।

टीसीपी पोर्ट 80 के लिए एक नियम जोड़ना

$ /etc/init.d/iptables restart
$ iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ /etc/init.d/iptables save

नोट: यह नियम को रिबूट के बीच बनाए रखेगा।

फ़ायरवॉल टीसीपी पोर्ट 80 को स्वीकार कर रहा है

एक सिस्टम जिसमें पोर्ट 80 खुला है वह कुछ इस तरह दिखाई देगा:

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:https 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:8834 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

अंक # 3 - अपाचे सुन रहा है?

उपरोक्त मुद्दे में हमने देखा कि अपाचे सुन रहा था, लेकिन कभी-कभी इसे गलत तरीके से कॉन्फ़िगर किया जाता है ताकि यह केवल 1 आईपी पते पर सुन रहा हो, या यह कि यह एक अलग नेटवर्क इंटरफ़ेस पर सुन रहा है। कमांड netstatका उपयोग अपाचे कॉन्फ़िगरेशन फ़ाइलों की समीक्षा करने के साथ-साथ इसे दोगुना करने के लिए किया जा सकता है।

$ netstat -anpt | grep :80 | column -t
tcp  0  0  0.0.0.0:80  0.0.0.0:*  LISTEN  1750/httpd

इससे पता चलता है कि अपाचे सभी इंटरफेस (आईपी 0.0.0.0) पर सुन रहा है।

मैं दोहरा नहीं सकता कि क्या @ लेकेनस्टाइन का जवाब है जो इस विशेष मुद्दे को यहां अधिक विवरण में शामिल करता है।

संदर्भ


अब मैं पूरी तरह से भ्रमित हूँ। मैं पहले से ही VM को ब्रिज मोड में प्राप्त कर चुका हूं, मैं VM को होस्ट से पिंग कर सकता हूं लेकिन मुझे होस्ट पर वेब ब्राउज़र से समान आईपी एड्रेस नहीं मिल सकता है, भले ही वीएम ने अपाचे स्थापित किया हो और शुरू हो, मुझे देखना चाहिए it worked!अपाचे पेज।
१६:१४ पर १६

@oshirowanen - जैसा कि हम कोशिश करते हैं और 8-8 मुद्दे को हल करने के लिए निराश नहीं होने के लिए धन्यवाद।) सुनिश्चित करें कि अपाचे CentOS पर चल रहा है, /etc/init.d/httpd statusचल रहा दिखाना चाहिए।
स्लम

1
मैंने VM पर फ़ायरवॉल बंद कर दिया है और अब मैं VM के url तक पहुँचने के लिए होस्ट मशीन पर वेब ब्राउज़र का उपयोग करते समय डिफ़ॉल्ट आईपी पेज देख सकता हूँ ... !!!

1
@ जोशीरोवन - वुहो! ठीक तो पूरे मुद्दे सिर्फ फ़ायरवॉल था, मैं अपने फ़ायरवॉल के लिए नियम जोड़ने के लिए एक कमांड जोड़ देंगे, आप भी यह स्थायी कर सकते हैं w / इस आदेश, /sbin/service iptables save
स्लम

हाँ! मैंने CentOS की एक न्यूनतम स्थापना की और मुझे यह नहीं मानना ​​चाहिए था कि फ़ायरवॉल डिफ़ॉल्ट रूप से अक्षम हो गया था ... सच कहूँ तो, फ़ायरवॉल मेरे दिमाग में भी नहीं आया था। मदद करने के लिए अपना समय बिताने के लिए धन्यवाद।

2

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

$ netstat -tnl | grep :80
Proto Recv-Q Send-Q Local Address      Foreign Address  State
tcp        0      0 0.0.0.0:80         0.0.0.0:*        LISTEN
tcp6       0      0 :::80              :::*             LISTEN

यदि यह कहता है 0.0.0.0:80, यह सभी इंटरफेस पर सुनता है। आपके मामले में, मैं 127.0.0.1:80इसके बजाय उम्मीद करूंगा । इसे हल करने के लिए, अपने Apache config (कहीं न कहीं /etc/httpd/conf/) को बदलें और बदलें:

Listen 127.0.0.1:80

सेवा:

Listen 80

आप nmapअपनी मशीन पर उपलब्ध सेवाओं को सत्यापित करने के लिए भी उपयोग कर सकते हैं । यह इस तरह दिखना चाहिए:

$ nmap 192.168.0.2

Starting Nmap 6.40 ( http://nmap.org ) at 2014-01-11 15:22 CET
Nmap scan report for localhost (192.168.0.2)
Host is up (0.0036s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds

2

CentOS 7 पर, फ़ायरवॉल ने iptables को डिफ़ॉल्ट फ़ायरवॉल के रूप में बदल दिया है।

मुझे इस्तेमाल करना था

systemctl stop firewalld

मेजबान से CentOS VM से कनेक्शन का परीक्षण करने के लिए फ़ायरवॉल को रोकें।

यहाँ और देखें: /programming/24756240/how-can-i-use-iptables-on-centos-7

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