सवाल क्या मैं ओएस एक्स पर अपने / etc / hosts में प्रविष्टि में एक पोर्ट निर्दिष्ट कर सकता हूं? [डुप्लिकेट]


संभावित डुप्लिकेट:
डोमेन को अपने सर्वर पर विशिष्ट पोर्ट पर रीडायरेक्ट करने के लिए DNS का उपयोग कैसे करें 

मैं अपने ब्राउज़र को स्थानीयहोस्ट में जाने के लिए ट्रिक करना चाहता हूं: xyz.com के बजाए 3000। मैं ओएस एक्स 10.5 पर / etc / hosts में गया और निम्न प्रविष्टि को जोड़ा:

127.0.0.1:3000 xyz.com

यह काम नहीं करता है लेकिन पोर्ट को निर्दिष्ट किए बिना चाल काम करता है। क्या पोर्ट को निर्दिष्ट करने का कोई तरीका है?


41
2017-08-14 18:20


मूल




जवाब:


नहीं, मेजबान फ़ाइल केवल DNS सर्वर मौजूद होने पर नामों को स्थिर रूप से हल करने का एक तरीका है।


39
2017-08-14 18:23



क्या कोई काम है? - Tony
यह पूरी तरह सटीक नहीं है। यदि मशीन को DNS से ​​पहले होस्ट का उपयोग करने के लिए कॉन्फ़िगर किया गया है तो एक होस्ट एंट्री का उपयोग किया जाएगा भले ही एक ही गंतव्य के लिए DNS प्रविष्टि हो। - John Gardeniers
पवित्र बकवास मैं उसे नहीं जानता था। (बाद में) @ जॉन गार्डनियर पवित्र बकवास मैं या तो नहीं जानता था। - boulder_ruby
मैं इसका उपयोग कर काम करने में सक्षम था ifconfig तथा pfctl मैक 10.10.2 पर आदेश। निम्नलिखित दृष्टिकोण के साथ मैं सफलतापूर्वक मैपिंग कर रहा हूं 127.0.0.1:3000 सेवा मेरे mydomain.com स्थानीय रूप से मेरी मशीन पर। मैं इसे यहां पोस्ट नहीं कर सका, लेकिन मैं इसे यहां कैसे करें इस पर एक चरण-दर-चरण पोस्ट करने में सक्षम था: serverfault.com/questions/102416/... - Kevin Leary


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

Iptables के साथ:
क्या मैक ओएस iptables / netfilter का उपयोग करता है (मैंने ऐसा नहीं सोचा था) ..? यदि ओएस एक्स iptables का उपयोग करता है तो आप xyz.com को मेजबान फ़ाइल में 157.166.226.25 जैसे कुछ आईपी पर इंगित कर सकते हैं और फिर:

sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -d 157.166.226.25 -j DNAT --to-destination 127.0.0.1:3000

:-)


41
2017-08-14 18:44



ओएस एक्स फ्रीबीएसडी से निकलता है, इसलिए यह ipfw और natd का उपयोग करता है। - outis
अगर मैं इस 1000 बार उठा सकता हूं तो मैं चाहता हूं। मनमानी बंदरगाह का उपयोग प्रतिभा है। धन्यवाद - पूरी तरह से काम करता है। - Paul Biggar
Ifpw (मैक फ्रेंडली) तरीका है sudo ipfw add 100 fwd 127.0.0.1,3000 tcp from any to any 80 in और इसे हटाने के लिए sudo ipfw flush एक जादू की तरह काम करता है! - mraaroncruz
यह स्वीकार्य उत्तर क्यों नहीं है? यह स्वीकार किया जाना चाहिए था। - dhilipsiva
मुझे मिला iptables command not found Mavericks में। - Sarah Vessels


आपको होस्ट फ़ाइल में पोर्ट निर्दिष्ट करने की आवश्यकता नहीं है। बस 127.0.0.1 xyz.com में बंदरगाह को छोड़कर आपके द्वारा प्रविष्टि करें, यह आपको आपके स्थानीय होस्ट पर निर्देशित करेगा, फिर बस अपने यूआरएल के अंत में पोर्ट 3000 जोड़ें ... http://xyz.com:3000


12
2017-08-15 09:22



आईपी ​​टेबल संशोधित करने की तुलना में एक सरल समाधान। विकास के लिए सहायता करता है जहां सत्रों को डोमेन नाम निर्दिष्ट करने की आवश्यकता होती है। जबकि आईपी टेबल उत्पादन सर्वर के साथ मदद कर सकते हैं। - Tejas Jayasheel
यही वह नहीं है जिसे ओपी ने पूछा था। - Niels Bom
यह काम किया (वाई) - Rider
प्रश्न: "मैं यह करना चाहता हूं" ए: "नहीं, आप नहीं करते।" - Adam Grant


मान लीजिए कि आप http को अवरुद्ध करने की कोशिश कर रहे हैं और https नहीं, आपको अपनी स्थानीय मशीन पर पोर्ट 80 पर सुनना होगा, लेकिन फिर आप एसएसएच पोर्ट अग्रेषण सुविधाओं का उपयोग स्थानीयहोस्ट को ssh'ing करके कर सकते हैं -L80:localhost:3000, लेकिन आपको रूट के रूप में ऐसा करना होगा।

बंदरगाह 3000 पर चल रहा है जो भी हो, शायद यह बेहतर होगा कि इसके बजाय पोर्ट 80 को सुनें।

यदि आप अपने और xyz.com के बीच राउटर को नियंत्रित करते हैं, तो आप इसके बजाय पोर्ट पोर्टिंग नियम सेट करने में सक्षम हो सकते हैं।


4
2017-08-14 18:37





मुझे लगता है कि आपको पोर्ट कनेक्शन को पुनर्निर्देशित करने के लिए फ़ायरवॉल सॉफ़्टवेयर के साथ किसी प्रकार का प्रॉक्सी सर्वर या शायद कुछ उपयोग करने की आवश्यकता है ...


2
2017-08-14 18:32





चीफ-एजी सही है कि मेजबान फ़ाइल का नाम स्थिर रूप से नामों को हल करने के लिए किया जाता है (DNS उपस्थिति अप्रासंगिक है)। हालांकि, उन चीजों का संयोजन हो सकता है जो आप कर सकते हैं।

  1. मेजबान फ़ाइल में रिकॉर्ड 127.0.0.1 xyz.com पर सेट करें
  2. वर्चुअल होस्ट के लिए अपनी मशीन को कॉन्फ़िगर करें
  3. वर्चुअल होस्ट के लिए आप xyz.com के लिए सेटअप करते हैं, एक HTML फ़ाइल बनाएं जो स्थानीयहोस्ट पर रीडायरेक्ट करें: 3000

लगता है कि काम का एक उचित काम है, लेकिन यह आप जो पूछ रहे हैं उसे पूरा करेगा।


1
2017-08-14 21:21





एक आभासी मेजबान के विकल्प के रूप में, आप पोर्ट 80 पर एक एसएसएच सुरंग सुन सकते हैं और स्थानीयहोस्ट को अग्रेषित कर सकते हैं: 3000।


1
2017-08-14 21:25





इसके लिए DNS समाधान एसआरवी रिकॉर्ड का उपयोग करना है:

http://en.wikipedia.org/wiki/SRV_record

ये DNS को अनुमति देने का एक तरीका है, जो मूल रूप से "नाम से नंबर" या "नाम से नाम" वितरित डेटाबेस था, जिसमें "नाम से सेवा अंतराल" शामिल है, जो (वैकल्पिक रूप से) प्रोटोकॉल और पोर्ट शामिल कर सकता है।

बुरी खबर यह है कि एसआरवी रिकॉर्ड्स का उपयोग करने के लिए अनुप्रयोगों को विकसित करना होगा, इसलिए आप जो भी करने की कोशिश कर रहे हैं उसके लिए यह एक ड्रॉप-इन समाधान नहीं है।


1
2017-08-15 09:07





मुझे लगता है कि यह रेल विकास के लिए है? यदि ऐसा है, तो मानक वेब पोर्ट पर चलाने के लिए स्क्रिप्ट / सर्वर -p 80 चलाएं। तो आपका xyz.com काम करेगा


0
2017-08-22 13:48





यदि आप xache.com पर वेबशेवर के रूप में अपाचे का उपयोग कर रहे हैं, तो आप अपाचे का उपयोग कर सकते हैं ProxyPass 'कन्वर्ट' करने के लिए एक अलग बंदरगाह तक।


0
2017-08-22 15:58