मैं एक रूटर के पीछे अपने नेटवर्क के बाहर आईआईएस कैसे काम कर सकता हूं और पहुंच योग्य हूं? [बन्द है]


9

मेरी मशीन विंडोज 7 अल्टीमेट चल रही है। यहाँ मैंने जो किया है (सफलतापूर्वक) अब तक:

  1. FastCGI पर PHP के साथ IIS 7.5 स्थापित किया गया
  2. काम कर गया! जब मैं http: //localhost/index.php पर जाता हूं, तो मेरी PHP स्क्रिप्ट ठीक चलती हैं।
  3. रैन ipconfig को यह पता लगाने के लिए कि मेरा स्थानीय IP पता 192.168.1.102 है। मैंने पुष्टि की कि http://192.168.1.102/index.php ठीक ऊपर दिए गए लोकलहोस्ट पते की तरह काम करता है।
  4. मेरे राउटर प्रशासन में चला गया (मेरे पास एक Linksys WRT54G2 है) और पोर्ट 80 से 192.168.1.102 पर पोर्ट अग्रेषण स्थापित किया। अब पोर्ट 80 मेरी मशीन को अग्रेषित कर रहा है।
  5. पोर्ट 80 पर सभी गतिविधि की अनुमति देने के लिए विंडोज फ़ायरवॉल में एक इनबाउंड नियम सेट करें।
  6. मुझे पता चला कि Google के बाहर मेरा IP पता क्या है। चलो इसे XXX.XX.XX.XX कहते हैं।

हालाँकि, जब मैं http: //XXX.XX.XX.XX/index.php पर अपनी मशीन से, या दूर के कंप्यूटर से और मेरे नेटवर्क पर नहीं, किसी भी तरह से जाने की कोशिश करता हूं, तो मुझे कुछ भी नहीं मिलता है। यह थोड़ी देर के लिए कनेक्ट करने का प्रयास करता है (असफल) लेकिन अंततः बस हार मान लेता है।

यहाँ मैं सोच रहा हूँ:

  1. मैं क्या खो रहा हूँ? मैं क्या भूल गया / अनदेखी? मुझे अपने स्थानीय नेटवर्क के बाहर यह काम करने और सुलभ कैसे मिलेगा?
  2. मुझे लगता है कि मुझे यह काम मिल रहा है, तो मैं फिर पोर्ट 80 के अलावा अन्य पोर्ट का उपयोग कैसे कर सकता हूं? संभव बनाने के लिए मुझे किन परिवर्तनों (जैसे IIS, Windows फ़ायरवॉल, राउटर प्रशासन, आदि) की आवश्यकता होगी?

अग्रिम में ही बहुत शुक्रिया!


1
देखें कि क्या आपका पोर्ट सफलतापूर्वक यहां भेजा गया है या तो yougetignal.com/tools/open-ports
smohamed

जवाबों:


5

यह HTTP.SYS समस्या की तरह लगता है जो आप कर रहे हैं।

नीचे स्कॉट हंसेलमैन के ब्लॉग का एक अंश है, जो बताता है कि लोकलहोस्ट के बाहर IISExpress को कैसे उजागर किया जाए। ब्लॉग पोस्ट लंबी है जो यह भी बताती है कि एसएसएल तक सभी वायर कैसे हैं। लेकिन मेरा मानना ​​है कि मैंने जो कमांड नीचे पोस्ट की है, जो मैंने उसके पोस्ट से खींची है, उससे आपको उस समस्या को हल करने में मदद मिलेगी जो आप कर रहे हैं।

सबसे पहले, हमें कर्नेल स्तर पर HTTP.SYS को यह बताने की आवश्यकता है कि सभी को "यूआरएल" रिजर्वेशन करके इस URL पर बात करने दें। एक प्रशासनिक कमांड प्रॉम्प्ट से:

netsh http add urlacl url=http://<LocalComputerName>:80/ user=everyone

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

netsh firewall add portopening TCP 80 IISExpressWeb enable ALL

जब आप पहले से ही फ़ायरवॉल नियम बनाते हैं, तो आपको अंतिम आदेश की आवश्यकता नहीं हो सकती है।


मैंने URL आरक्षण को जोड़ने के लिए पहला netsh कमांड चलाया, लेकिन इसने कुछ भी नहीं किया (अभी भी स्थानीय रूप से काम किया है, लेकिन अपने नेटवर्क के बाहर नहीं)। कोई अन्य विचार?
20

यह सही नहीं लगता है। आपको वास्तविक IIS 7.5 उदाहरण (IIS एक्सप्रेस नहीं) पोर्ट-फ़ॉर्वर्ड प्राप्त करने के लिए http.sys के साथ चक्कर लगाना होगा।
ट्रिस्टन

2
  1. (अपने नेटवर्क के बाहर से पहुंच) कई आवासीय आईएसपी (और कुछ व्यवसाय आईएसपी) पोर्ट सेवा या जैसे 80 या 25 पर इनबाउंड ट्रैफिक को रोकेंगे। यह आमतौर पर बैंडविड्थ उपयोग के कारण आपको आवासीय सेवाओं पर व्यावसायिक सेवाओं को चलाने से रोकना है। विकल्प यह है कि इसे दूसरे पोर्ट पर चलाया जाए (नीचे देखें)।

  2. (अपने नेटवर्क के अंदर से पहुंच) जिस स्थिति का वर्णन आप हेयरपिन NAT की तरह कर रहे हैं। यहाँ हेयरपिन NAT का एक अच्छा उच्च-स्तरीय अवलोकन है । आपको अपने बाहरी IP के लिए ट्रैफ़िक को हमेशा के लिए नियत करने के लिए अपने राउटर से NAT नियमों को जोड़ना होगा, पोर्ट 80 आपके राउटर से गुजरेगा और सीधे आपके नेटवर्क के अंदर होस्ट करने के लिए होस्ट से नहीं। कैविएट: आपका राउटर वास्तव में ऐसा करने में सक्षम नहीं हो सकता है।

  3. IIS में पोर्ट बाइंडिंग बदलें , फिर वेबसाइट को पुनरारंभ करें।


मैंने इसे 8080 पोर्ट पर काम करने के लिए IIS में एक बंधन जोड़ा, और फिर, यह स्थानीय स्तर पर काम करता है। तो 192.168.1.102:8080/index.php काम करता है। मैंने पोर्ट 8080 के लिए विंडोज फ़ायरवॉल में एक इनबाउंड नियम भी जोड़ा, हालांकि यह अभी भी मेरे नेटवर्क के बाहर काम नहीं कर रहा है। मैंने अपने Linksys WRT54G2 राउटर में NAT नियमों को जोड़ने पर ध्यान दिया, और मैंने जो ऑनलाइन मदद की, उसने कहा कि इसमें "पोर्ट ट्रिगरिंग" विकल्प शामिल होंगे। मैंने इसे स्थापित किया, लेकिन अभी भी ... कोई पासा नहीं। कोई अन्य सुझाव?
१६

1
यदि आप इसे आंतरिक रूप से एक्सेस कर सकते हैं, तो विंडोज फ़ायरवॉल आपकी समस्या नहीं है। पोर्ट ट्रिगरिंग वह नहीं है जो आप चाहते हैं। आप पोर्ट फ़ॉरवर्डिंग का उपयोग करने जा रहे हैं (यदि आपका राउटर इसका समर्थन करता है)। पोर्ट के 8080 पर फॉरवर्ड ट्रैफ़िक आपके राउटर के बाहरी इंटरफ़ेस पर 192.168.1.102:8080
जोएल ई सलास

मैं पहले से ही ऐसा कर रहा था (पोर्ट अग्रेषण दोनों बंदरगाहों पर 80 और 8080) पहले मैंने सवाल पूछा था। मुझे अभी भी कुछ याद आ रहा है, जाहिरा तौर पर।
soppergem

क्या राउटर के पास कोई वास्तविक फ़ायरवॉल नियम (NAT नियमों के अलावा) है जो ट्रैफ़िक को रोक सकता है? यदि संभव हो तो, डिबगिंग उद्देश्यों के लिए अपने राउटर के रूप में उपयोग करने के लिए अपने आप को एक बॉक्स चलाने के लिए pfSense सेट करें। आपका राउटर (जो होस्टिंग सेवाओं के लिए डिज़ाइन नहीं किया गया है) लगभग निश्चित रूप से आपके संकट का कारण है।
जोएल ई सलास

ऐसा लगता है कि आपने IIS स्तर पर कुछ भी गलत नहीं किया है, यह सिर्फ इतना है कि राउटर नॉनट्यूसेटिव है / आपका आईएसपी आपको रोक रहा है। यह भी संभव है कि आपको क्या लगता है कि आपका आईपी डबल-इनडायरेक्ट है; बाहरी आईपी क्या है के राउटर के विचार की जांच करें।
ट्रिस्टन

0

मुझे भी यही समस्या थी। Windows फ़ायरवॉल पहुँच को रोक रहा है। इसे बंद करें और इसे फिर से जांचें। मेरा अनुमान है कि यह काम करेगा।


2
यह आमतौर पर एक फ़ायरवॉल बंद करने के लिए एक अच्छा समाधान नहीं है।
user9517

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