यदि पोर्ट खोला गया है या नहीं तो मुझे कैसे पता चलेगा?


22

मैंने अपने विंडोज 7 कंप्यूटर पर अपाचे सर्वर स्थापित किया है। मैं अपने ब्राउज़र की एड्रेस लाइन में http: // localhost / लिखकर डिफ़ॉल्ट index.php प्रदर्शित करने में सक्षम था ।

हालाँकि, मैं अभी भी अपने कंप्यूटर का IP पता (न तो स्थानीय रूप से (उसी कंप्यूटर से) कोई विश्व स्तर पर (इंटरनेट से जुड़े किसी अन्य कंप्यूटर से)) टाइप करके इस पृष्ठ को देखने में असमर्थ हूं।

मुझे बताया गया था कि मुझे पोर्ट 80 खोलने की जरूरत है। मैंने इसे ( यहां वर्णित तरीके से ) किया था, लेकिन इससे समस्या हल नहीं हुई।

सबसे पहले मैं यह जांचना चाहूंगा कि कौन से पोर्ट खोले गए हैं और कौन से नहीं हैं। उदाहरण के लिए मुझे यकीन नहीं है कि खोलने से पहले मैंने अपना पोर्ट 80 बंद कर दिया था। मुझे यह भी पक्का नहीं है कि इसे खोलने की कोशिश करने के बाद इसे खोला जाता है।

मैंने पायथन में लिखे एक बहुत ही साधारण वेब सर्वर को चलाने की कोशिश की। उसके लिए मैंने 81 पोर्ट का इस्तेमाल किया और यह काम कर गया! और मैंने पोर्ट 81 को खोलने की कोशिश नहीं की। इसलिए, यह डिफ़ॉल्ट रूप से खोला गया था। तो, अगर 81 डिफ़ॉल्ट रूप से खोला जाता है, तो 80 क्यों नहीं है? या यह है?

अतिरिक्त जानकारी:
1. मेरी httpd.conf फ़ाइल में मेरे पास "सुनो 80" है।
2. यह साइट मुझे बताती है कि मेरे कंप्यूटर पर पोर्ट 80 खोला गया है।
3. अगर मुझे http: // myip: 80 और http: // myip: 81 आजमाया जाए तो मुझे अलग-अलग प्रतिक्रियाएं मिलती हैं । अंतिम स्थिति में ब्राउज़र (क्रोम) मुझे लिखता है कि लिंक टूट गया है। पहले मामले में मुझे मिलता है: निषिद्ध आपके पास इस सर्वर पर पहुंचने की अनुमति नहीं है।
4. IE लिखता है कि "वेबसाइट ने इस वेबपेज को दिखाने से मना कर दिया"।


3
यदि पहला मामला "निषिद्ध" कहता है तो आपकी रूट डायरेक्टरी या वर्चुअल होस्ट सही तरीके से सेट नहीं है।
उरदा

मान लें कि आप राउटर के पीछे हैं, तो क्या आपने राउटर पर पोर्ट-फ़ॉरवर्डिंग सेटअप किया है? आपका राउटर (अधिकांश) संभवतः वेब-आधारित व्यवस्थापक इंटरफ़ेस के लिए पहले से ही पोर्ट 80 का उपयोग करता है। किसी भी स्थिति में, आपको अपने कंप्यूटर के स्थानीय आईपी पते पर अपने सार्वजनिक आईपी पते (राउटर) को पोर्ट 80 (या जो भी) पर अग्रेषित करने की आवश्यकता है।
जोंगोसी

जवाबों:


16

यदि आप अभी बाहर से अपने बंदरगाहों की जाँच कर रहे हैं। इस उपकरण का उपयोग करें:

http://www.yougetsignal.com/tools/open-ports/

यह विशिष्ट पोर्ट पर, आपके आईपी पते से जुड़ने का प्रयास करेगा, और आपको बताएगा कि क्या यह बाहरी दुनिया के लिए खुला या बंद है।

स्थानीय मुद्दे भी? लगता है कि विंडोज 7 फ़ायरवॉल आपको काट रहा है। इस ट्यूटोरियल के साथ एक अपवाद जोड़ें ...

http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html


मैंने yougetsignal.com/tools/open-ports के साथ अपने बंदरगाहों की जाँच की । यह साइट लिखती है कि मेरा पोर्ट 80 खोला गया है (जबकि 79 और 81 बंद हैं)।
रोमन

क्या आपने अपने विंडोज 7 फ़ायरवॉल अपवादों की जांच की? यह समझाता है कि आप इसे localhostअन्य कंप्यूटरों के माध्यम से क्यों नहीं पहुंचा सकते हैं ।
उरदा

उरदा, मैंने इस तरह से अधिकतम 80 पोर्ट खोले हैं maximumpcguides.com/windows-7/… । तो, इसे सभी आईपी के लिए खोला जाना चाहिए। इसके अलावा, साइट जो आप मुझे देते हैं वह कहती है कि पोर्ट 80 खुला है।
रोमन

1
यदि पहला मामला "निषिद्ध" कहता है, तो आपकी रूट डायरेक्टरी या वर्चुअल होस्ट अधिकांश मामलों में सही ढंग से सेट नहीं है। आपको एक लिंक टूट गया है क्योंकि 81 का समाधान नहीं हो रहा है।
उरदा

1
@Kirk यह एक महान वेबसाइट है!
उरेडा

13

रनिंग netstat -a -nया ss -a -nकमांड प्रॉम्प्ट से सभी नेटवर्क कनेक्शन खुले और आपके मशीन पर सुनने वाले पोर्ट दिखाई देंगे। 0.0.0.0:80इसका मतलब यह होगा कि यह 80सभी आईपी पते (लोकलहोस्ट और आपके सार्वजनिक / निजी आईपी पते) के पोर्ट पर सुन रहा है, जहाँ 127.0.0.1:80इसका मतलब यह होगा कि यह केवल लोकलहोस्ट पर सुन रहा है। आप -bकमांड में जोड़ सकते हैं और यह दिखाएगा कि कौन सा निष्पादन योग्य उस पोर्ट का उपयोग कर रहा है। आप नेटवर्क टैब के श्रवण पोर्ट अनुभाग के तहत विंडोज 7 में संसाधन मॉनिटर का उपयोग करके एक ही जानकारी प्राप्त कर सकते हैं।


5

यदि आप यह देखना चाहते हैं कि यह किसी अन्य सर्वर से खुला है या नहीं, तो आप देख सकते telnet serverName 80हैं कि क्या सत्र खुलता है। यदि ऐसा नहीं होता है, तो या तो सर्वर सुन नहीं रहा है, या पोर्ट फ़ायरवॉल द्वारा अवरुद्ध है।

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


2

आप ने लिखा:

पहले मामले में मुझे मिलता है: निषिद्ध आपके पास इस सर्वर पर पहुंचने की अनुमति नहीं है।

हालांकि यह अजीब लग सकता है, आपको वास्तव में खुले बंदरगाहों (लेकिन अपाचे कॉन्फ़िगरेशन के साथ) के साथ कोई समस्या नहीं है।

वह "निषिद्ध" संदेश आपके अपाचे सर्वर से आता है; इसका मतलब है कि अपने वेब सर्वर है इंटरनेट से एक्सेस।

आपको सभी मेजबानों की सेवा करने के लिए अपाचे को कॉन्फ़िगर करने की आवश्यकता है - अन्यथा उन्हें "निषिद्ध" पृष्ठ मिलेगा। IIRC, Apache को शुरू में केवल स्थानीय कंप्यूटर से अनुरोध करने के लिए सेट किया गया है।

आपके अपाचे कॉन्फिगर में कहीं न कहीं इस तरह का एक सेक्शन है (वास्तविक निर्देशिका अलग हो सकती है):

<Directory "/home/piskvor/www">
    Allow from 127.0.0.1
    Deny from all
(...)

यदि आप किसी भी कंप्यूटर को अपने पृष्ठों को देखने की अनुमति देना चाहते हैं, तो आपको इसे बदलने की आवश्यकता Deny from allहै Allow from allअधिक जानकारी के लिए एक्सेस मॉड्यूल प्रलेखन देखें


1

खुले बंदरगाहों को देखने के लिए, आपको संभवतः nmap का उपयोग करना चाहिए उनके पास एक Windows संस्करण है: http://nmap.org/dist/nmap-5.21-setup.exe

यदि आप अपने पोर्ट 80 को लोकलहोस्ट से खोलते हुए देखते हैं तो यह पर्याप्त नहीं है - अगर आप इसे कहीं और से आजमाते हैं, तो कुछ इस तरह से खड़ा हो सकता है, इसीलिए मैं नैम्पै

आपके द्वारा टाइप किए जाने वाले क्लाइंट से: आईपी-ऑफ-द-योर-सर्वर को nmap


1

यदि आप अपने स्थानीय नेटवर्क पर यह परीक्षण करना चाहते हैं तो डाउनलोड करें nmap यदि आप मौसम देखना चाहते हैं तो बंदरगाह बाहरी दुनिया के लिए सुलभ है https://www.grc.com/x/ne.dll?bh0bkyd2 पर एक स्कैन चलाएं।


0

सर्वर पोर्ट या तो एकल आईपी पते या हर उपलब्ध आईपी पते के लिए बाध्य हो सकते हैं। ऐसा लगता है कि आपकी अपाचे स्थापित करने के लिए केवल 127.0.0.1 को बाँधने के लिए स्थापित किया गया है, और आपको इसे * से बाँधने के लिए सेट करने की आवश्यकता है। अपने httpd.conf (अपाचे के कॉन्फिडेंस डाइरेक्टरी में) की तरह एक लाइन को देखें Listen localhost:80और उसे बदल दें Listen 80


1
मुझे मेरी httpd.conf फ़ाइल मिली। फ़ाइल में मेरे पास "सुनो 80" है।
रोमन

0

telnet <host> <port>आपका दोस्त है। यह दुनिया में हर कंप्यूटर पर बहुत अधिक स्थापित होने का गुण है।

प्रश्न को फिर से पढ़ने के बाद संपादन:

यहां कुछ उपयोगी नैदानिक ​​सुझाव दिए गए हैं

  1. यदि आप साइट को लोकलहोस्ट के माध्यम से एक्सेस कर सकते हैं, लेकिन आपके नेटवर्क पर अन्य होस्ट से आपकी साइट-लोकल आईपी (192.168। *) के माध्यम से नहीं, तो संभवत: यह विंडोज़ फ़ायरवॉल समस्या है।

  2. यदि आप साइट को अन्य साइट-स्थानीय मशीनों से एक्सेस कर सकते हैं, लेकिन इंटरनेट से आपके सार्वजनिक आईपी तक नहीं है, तो यह एक राउटर / पोर्ट-फ़ॉरवर्डिंग कॉन्फ़िगरेशन समस्या है।


0

कमांड प्रॉम्प्ट प्रकार से:

netstat -ano, look for 0.0.0.0:80 

... या आपका आईपी: 80 यह आपको बताएगा कि पोर्ट 80 आपकी मशीन पर खुला है या नहीं। अब यदि आप जांचना चाहते हैं और देख सकते हैं कि क्या आप इसे अपने नेटवर्क के बाहर से एक्सेस कर सकते हैं, तो यह निर्धारित करेगा कि आपके पास जगह में फ़ायरवॉल है या नहीं। यदि आप करते हैं तो आपको अपने वेब सर्वर पर पोर्ट 80 को अग्रेषित करना होगा।


0

यदि आप विंडोज पर हैं, तो SysInternals TCPView का उपयोग करें । यह आपको बता सकता है कि कौन सा प्रोग्राम किस पोर्ट का उपयोग कर रहा है।

Screenshto


धन्यवाद डियो फुंग। कि विंडोज़ उपयोगिता वास्तव में उपयोगी है।

-2

डॉस कमांड में:

C:\Windows\system32>netstat -a -b

使用中連線

  協定   本機位址               外部位址               狀態
  TCP    0.0.0.0:80             801781-N1:0            LISTENING     [Skype.exe]
  TCP    0.0.0.0:135            801781-N1:0            LISTENING      RpcSs      [svchost.exe]
  TCP    0.0.0.0:443            801781-N1:0            LISTENING     [Skype.exe]
...
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.