क्या मैं आईपी पता प्लस पोर्ट का उपयोग करने के लिए विंडोज होस्ट फाइल को कॉन्फ़िगर कर सकता हूं?


13

मैं IP पता + पोर्ट के आधार पर होस्ट अनुरोध भेजने के लिए Windows होस्ट फ़ाइल कॉन्फ़िगर करना चाहता हूं ।

उदाहरण के लिए:

127.0.0.1:80       www.site1.com
127.0.0.1:8080     www.sitetwo.com

क्योंकि मेरे पास अपाचे को पोर्ट 8080 पर और आईआईएस को पोर्ट 80 (डिफ़ॉल्ट) पर सुन रहा है।

इसलिए, मुझे लगता है कि ऐसा करने का सबसे अच्छा तरीका hostsफ़ाइल को संशोधित करना है। इसका कोई असर नहीं हो रहा है। न तो मुझे कोई त्रुटि मिल रही है और न ही कोई संदेश।


1
आप एक बेहतर प्रतिक्रिया पर सवाल इस तरह की पूछ मिलेगा serverfault.com
कार्ल Norum

आप अपने ब्राउज़र में site1.com (: 80) और sitetwo.com:8080 क्यों नहीं लॉन्च कर सकते ?
यवन सितप

जवाबों:


11

आप नहीं कर सकते। मेजबानों फ़ाइल बस है कि - मेजबान। यह आपके स्थानीय मशीन के भीतर "शॉर्ट-सर्कुलेटेड" DNS के बराबर है। DNS आपको बंदरगाहों तक नहीं भेज सकता है, या तो।

आप जो करने की कोशिश कर रहे हैं उसे प्राप्त करने के लिए, आप IIS या Apache के तहत वर्चुअल होस्टिंग सेट अप करना चाहेंगे, और सेवा को तय करने के लिए कि कौन सी साइट को प्रस्तुत करने के लिए (HTTP होस्ट: हेडर पर आधारित) का उपयोग करें। हालांकि, यदि आप IIS और Apache दोनों के साथ एक साथ ऐसा करना चाहते हैं, तो यह आपकी मदद नहीं करेगा।


क्या आप स्पष्ट हो सकते हैं, मैंने वर्चुअल होस्टिंग के बारे में नहीं समझा। मैं वर्चुअल होस्टिंग कैसे कर सकता हूं?

4
  • hostsफ़ाइल होस्ट नाम संकल्प के लिए ही है
  • ब्राउज़र , बंदरगाह सीधे निर्दिष्ट करने के अभाव में: यानी <hostname>:<port>, चूक बंदरगाह के लिए80

विशिष्ट समस्या परिदृश्य

  1. एप्लिकेशन आमतौर पर अपने सर्वर को एक ही डिफ़ॉल्ट आईपी एड्रेस 127.0.0.1उर्फ localhost (मेजबानों की फाइल में परिभाषित) में सेट करते हैं
  2. संभवतः अन्य मौजूदा / चल रहे सर्वरों के बीच टकराव से बचने के लिए, एप्लिकेशन आमतौर पर आपको पोर्ट बदलने की अनुमति देता है, लेकिन आईपी पते की नहीं।

    2 ए। यदि आप सर्वर आईपी पते को लूपबैक आरक्षित पता स्थान में दूसरे में बदल सकते हैं 127.0.0.0/8, तो आप संभवतः होस्ट्स फ़ाइल में पोर्ट सेट करने का प्रयास नहीं करेंगे।

संभावित समाधान

आप पोर्ट प्रॉक्सी के रूप में विंडोज शामिल नेटवर्किंग टूल का उपयोग करके इसके आसपास काम कर सकते हैं netsh


अवलोकन

example.app
 |                               <--browser defaults to port 80
 +--> example.app:80
       |                         <--Hostname resolution by Hosts File
       +--> 127.65.43.21:80      
             |                   <--Link by netsh Utility
             +--> 127.0.0.1:8081

क्रिया

  • अपना सर्वर चालू करें localhost:8081
  • होस्ट फ़ाइल में "स्थानीय DNS" को एक नई पंक्ति के रूप में जोड़ें
    • 127.65.43.21 example.app
      • नेटवर्क में किसी भी मुफ्त पते का 127.0.0.0/8उपयोग किया जा सकता है।
      • नोट: मैं यह मान रहा हूं कि127.65.43.21:80किसी अन्य सेवा द्वारा कब्जा नहीं किया गया है।
      • आप के साथ जाँच कर सकते हैं netstat -a -n -p TCP | grep "LISTENING"
  • netsh कमांड उपयोगिता के साथ निम्नलिखित नेटवर्क कॉन्फ़िगरेशन जोड़ें
    • netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
  • सर्वर पर पहुँचें http://example.app

नोट:
- इन कमांड / फ़ाइल संशोधनों को व्यवस्थापक अधिकारों के साथ निष्पादित करने की आवश्यकता है

- netsh portproxy IPv6 पुस्तकालयों की जरूरत के लिए निम्न आदेश का उपयोग कर उन्हें स्थापित करते हैं, यहां तक कि केवल उपयोग v4tov4 को आम तौर पर वे भी डिफ़ॉल्ट रूप से शामिल किया जाएगा, अन्यथा:netsh interface ipv6 install


कमांड के साथ आपके द्वारा जोड़ी गई प्रविष्टि देख सकते हैं :

netsh interface portproxy show v4tov4

आप निम्न आदेश के साथ प्रविष्टि को हटा सकते हैं :

netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21


संसाधनों के लिए लिंक:

नोट: यह उत्तर स्टैकओवरफ्लो पर इसी तरह के प्रश्न / उत्तर में चर्चा किए गए मेरे उत्तर का दोहराव है


यह एक महान जवाब है ... संसाधन लिंक के लिए धन्यवाद!
एरिक हेपरले - CodeSlayer2010

3

नहीं, आप नहीं कर सकते। अगर यह काम नहीं कर रहा है, तो कुछ और गलत हो रहा है।

127.0.0.1 site.com
127.0.0.1 www.site.com

मुझे लगता है कि यह एक विकास बॉक्स के लिए है?

जब तक आप अपने DNS प्रश्नों को सम्‍मिलित करने जैसा कुछ नहीं कर रहे हैं तब तक DNS स्‍थानीयहोस्‍ट के लिए site.com और www.site.com को हल कर देगा। आपको शायद वेबसर्वर कॉन्फ़िगरेशन मदद के लिए सर्वरफ़ॉल्ट पर पूछना चाहिए, यह सबसे अधिक संभावना है।


सहायता के लिए धन्यवाद!!! लेकिन कोई रास्ता नहीं है ??? फिर मैं विभिन्न बंदरगाहों के साथ आईआईएस और अपाचे को समानांतर रूप से कैसे चला सकता हूं

वे अभी भी उसी पते पर जा रहे हैं, पोर्ट मेजबानों में भी कारक नहीं है। पोर्ट अभी भी काम करेगा, आप उन्हें समानांतर में चला सकते हैं।
Xorlev

3

आप फिडलर के साथ ऐसा कर सकते हैं । फिडलर स्क्रिप्ट के साथ , आप कई आश्चर्यजनक चीजें कर सकते हैं।

यदि आप मेजबानों को इस तरह सेट करते हैं

127.0.0.1     www.site1.com    # Port 80
127.0.0.1     www.sitetwo.com  # Port 8080

में इस जोड़े CustomRules.js (खुला करने के लिए CustomRules.js , चुनें अनुकूलित नियम फ़िडलर पर नियम मेनू)

// this method is already exist
static function OnBeforeRequest(oSession: Session) {  
    if (oSession.host.toLowerCase() == "www.sitetwo.com") 
        oSession.host = "www.sitetwo.com:8080";
    ...
}

तब फ़िडलर मेजबान को परिवर्तित करता है, और आप 8080 पोर्ट से कनेक्ट करेंगे।


क्या आप किसी भी ओपन सोर्स विकल्प (james, owasp zap, या अन्य) से अवगत हैं, जिनका उपयोग उसी प्रभाव के लिए किया जा सकता है?
Marc.2377

1

क्या आप केवल स्थानीय विकास के लिए सर्वर का उपयोग कर रहे हैं? यदि ऐसा है, तो आप अपनी अपाचे को 127.0.0.2:80 सुनने के लिए रख सकते हैं और होस्ट फ़ाइल के साथ उस डोमेन नाम को पुनर्निर्देशित कर सकते हैं जिसे आप पसंद करते हैं।


0

अन्य उत्तरों के साथ होस्ट फ़ाइल में पोर्ट की जानकारी नहीं होती है, लेकिन आपके पास एक ऐसा पेज हो सकता है, जो अपाचे या IIS जैसे शीर्षकों पर आधारित है जो नाम आधारित वर्चुअल होस्टिंग के लिए करेगा। हेडर की जांच करें और आवश्यकतानुसार पुनर्निर्देशित करें। हालाँकि मैं वास्तव में इस मूल्य को नहीं देख रहा हूं क्योंकि आप पहिया को फिर से मजबूत कर रहे हैं। Apache पोर्ट आधारित वर्चुअल होस्टिंग का समर्थन करती है और मुझे लगता है कि iis करता है।

क्या आपका लक्ष्य हमारे पास विकास की मशीन है, जो उत्पादन की स्थिति के लिए है।



-1

यह वही है जो आप कर सकते हैं, यह केवल स्थानीय विकास के लिए सहायक होगा।

होस्ट फ़ाइल:

  • 127.0.0.1 local.site1.com
  • 127.0.0.1 local.site2.com

IIS में, नई वेबसाइट बनाएं और local.site1.com & local.site2.com के लिए

IIS सेटअप

  • आईपी ​​पता: सभी बिना लिखा (यह स्थानीय होस्ट या किसी अन्य उपलब्ध आईपी का उपयोग करेगा)
  • पोर्ट: पहले से उपयोग के अलावा कोई अन्य (81,82,83 और इतने पर। 80 पहले से ही डिफ़ॉल्ट वेबसाइट द्वारा उपयोग में है)
  • होस्ट नाम: इसे खाली छोड़ दें

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

इसके बाद आप स्थानीय मशीन या लैन से वेबसाइटों तक पहुंचने के लिए निम्न यूआरएल का उपयोग कर सकते हैं।

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