पोर्ट के साथ लोकलहोस्ट को होस्टनाम - OSX [बंद]


14

मैं Node.jsअपनी मशीन पर स्थानीय रूप से कई वेब सर्वर चलाने की कोशिश कर रहा हूं।

क्योंकि मैं जो कोड लिख रहा हूं, उसे एक डोमेन नाम का संदर्भ देने की आवश्यकता है, जिसे मैं एक कन्वेंशन रखना चाहता हूं dev.myHost.comऔर इंगित करता हूं कि गैर-पोर्ट -80 सेवा नोड से चल रही है (तकनीकी रूप से मैं एक पर चल रहा हूं Harp.jऔर एक पर Sails.js)।

  • तो dev.hostOne.comइशारा करना चाहिएlocalhost:123
  • और dev.hostTwo.comइशारा करना चाहिएlocalhost:456

क्या यह संभव है? यदि हां, तो कैसे।

जवाबों:


23

मेरी समझ से, ऐसा लगता है कि आप केवल एक स्थानीय देव मशीन का उपयोग करते हैं, इसका मतलब किसी भी नेटवर्क से जुड़ा नहीं है जो DNS प्रदान करता है।

अगर मैं सही हूं, तो मैं नीचे बताई गई चीजों को सेटअप करने का सुझाव दूंगा:

चरण 1: अपने मैक ओएस (प्रति डोमेन) में कम से कम दो आईपी पते निर्दिष्ट करें, आइए बताते हैं:

192.168.0.10
192.168.0.11

दूसरे IP को सेटअप करने के लिए आपको एक दूसरा ईथरनेट एडॉप्टर (तार्किक नहीं भौतिक) जोड़ना होगा।

चरण 2: जैसा कि आपके पास DNS सर्वर नहीं है, आप अपनी /etc/hostsफ़ाइल को जोड़कर सेटअप कर सकते हैं :

192.168.0.10     dev.hostone.com
192.168.0.11     dev.hosttwo.com

चरण 3: अपने लूपबैक इंटरफ़ेस में उपनाम असाइन करें:

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

चरण 4:ipfw फ़ॉरवर्ड पैकेट पर सेटअप :

sudo ipfw add fwd 127.0.0.1,123 tcp from me to 192.168.0.10 dst-port 80
sudo ipfw add fwd 127.0.0.1,456 tcp from me to 192.168.0.11 dst-port 80

आप कर चुके हैं !

अभी :

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


मैंने Node.jsआपके मामले का परीक्षण करने के लिए दो वेब सर्वर सेटअप किए हैं :

$ netstat -anp tcp | grep -E "123|456"
tcp4    0    0  127.0.0.1:123    *.*    LISTEN
tcp4    0    0  127.0.0.1:456    *.*    LISTEN

महत्वपूर्ण: ध्यान दें कि ipfwनियम और लूपबैक इंटरफ़ेस उपनाम निरंतर नहीं हैं और रिबूट के बाद मौजूद नहीं रहेंगे। इसलिए एक स्टार्टअप स्क्रिप्ट जोड़ने पर विचार करें।


1
पूरी तरह से काम किया। जैसा मुझे चाहिए था यह बिल्कुल वैसा ही है।
मोंडो

1
खुशी है कि यह काम करता है! मुझे पूरा यकीन था कि यह पूरी तरह से एक "डुप्लिकेट" नहीं था;)
krisFR

मैक ओ एस सियरा पर सुडो: आईपीएफडब्ल्यू: कमांड नहीं मिला
क्लिंटम

3
@ClintM: ipfwद्वारा प्रतिस्थापित किया गया है pfctl। पोर्ट खोलने के तरीके के एक उदाहरण के लिए: gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
जो एत्ज़बर्गर

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