2013-07-11 10 views
22

मुझे समझ में नहीं आया कि bind_ip mongodb में क्या है। मैं bind_ip = 0.0.0.0 के साथ डेस्कटॉप से ​​ईसी 2 मशीन से रिमोट कनेक्शन बना सकता था, लेकिन यह bind_ip = 127.0.0.1 के साथ काम नहीं कर सका।mongodb.conf bind_ip = 127.0.0.1 काम नहीं करता है लेकिन 0.0.0.0 काम करता है

कृपया मुझे बताएं कि bind_ip क्या है और यह 0.0.0.0 के लिए क्यों काम करता है और 127.0.0.1 के लिए नहीं।

mongodb docs से

संदर्भ के लिए:

bind_ip

डिफ़ॉल्ट: सभी इंटरफेस।

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

आप कई आईपी पते पर मोंगोड को बांधने के लिए अल्पविराम से अलग मूल्यों की एक सूची को जोड़ सकते हैं। आपके सर्वर सार्वजनिक रूप से पूरे इंटरनेट पर सभी IP के संपर्क में आएंगे:

उत्तर

35

0.0.0.0 के लिए अपने सर्वर बंधन से पहले, कृपया उन परिवर्तनों के सुरक्षा के प्रभाव के बारे में स्पष्ट होना। अपने सर्वर पर प्रमाणीकरण सक्षम करना सुनिश्चित करें!

जब आप इसे ईसी 2 पर 127.0.0.1 पर बाध्य करते हैं तो आप अपनी मशीन तक नहीं पहुंच सकते हैं। यह एक बग नहीं है, यह नेटवर्क इंटरफ़ेस बाइंडिंग द्वारा तर्क दिया गया है।

127.0.0.1 केवल लूपबैक इंटरफ़ेस से जुड़ जाएगा (इसलिए आप इसे स्थानीय रूप से एक्सेस कर पाएंगे), जबकि 0.0.0.0 इसे उपलब्ध सभी नेटवर्क इंटरफेस पर बाध्य करेगा।

इसलिए आप अपने MongoDB EC2 पर जब आप 0.0.0.0 को यह बाँध (के रूप में यह अब इंटरनेट के माध्यम से उपलब्ध है) 127.0.0.1 के माध्यम से पहुँच सकते हैं और नहीं कर सकता।

स्थानीय सर्वरों (जैसे एक डब्ल्यूएएमपी या एक स्थानीय मोंगोडब सर्वर) के लिए जो आपके लिए अलग नहीं दिखेंगे, लेकिन उस मामले के लिए आपको स्थानीय सर्वर के लिए 0.0.0.0 पर बाध्यकारी भी होना चाहिए, जो उन्हें सभी नेटवर्क इंटरफेस पर उपलब्ध करा सकता है (तो यह किसी ऐसे व्यक्ति के लिए सार्वजनिक हो सकता है जो आपके आईपी को जानता है, अगर कोई फ़ायरवॉल नहीं है!)

यहां similar question on Server Fault पर पढ़ें।

+0

मेरा उत्तर बेहतर है, नीचे जांचें :) – OWADVL

12

यह किसी भी व्यक्ति को यह जवाब देखने के लिए स्पष्ट होना चाहिए कि आपके mongoDB को 0.0.0.0 पर बाध्यकारी करना आपके सबसे खराब कदम हो सकता है।

कृपया निम्नलिखित article पर पढ़ सकते हैं और यह सुनिश्चित करें कि जब भी आप अपने (और अपने ग्राहकों के लिए) डेटा के साथ सभी सार्वजनिक जाने का निर्णय करते हैं, आप निम्नलिखित पर विचार करें:

  • आप करने के लिए अतिरिक्त फ़ायरवॉल नियम है तय कर सकते हैं कि कर सकते हैं
    पहुँच आपकी सेवा
  • समझ लें कि जब अमेज़न EC2, का उपयोग करते हुए अगर आप की अनुमति देने के 'आंतरिक' यातायात इसे खुली डाल के रूप में ही माना जाना चाहिए, आप नहीं अकेले अमेज़न पर हैं
  • हैंआपकी सेवाओं का पासवर्ड सुरक्षित है? और किस तरह का प्रमाणीकरण? क्या स्पष्ट पाठ में सबमिट किया गया डेटा या
    एन्क्रिप्शन
  • क्या आप डिफ़ॉल्ट डेटाबेस नाम का उपयोग कर रहे हैं, या आपने एक उदाहरण चिपकाया है?
+2

यह प्रश्न का उत्तर नहीं प्रदान करता है। किसी लेखक से स्पष्टीकरण की आलोचना करने या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपनी पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त [प्रतिष्ठा] (http://stackoverflow.com/help/whats-reputation) हो [किसी भी पोस्ट पर टिप्पणी करने में सक्षम] [http://stackoverflow.com/help/privileges/comment)। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/10613323) – Blackwood

+2

@ ब्लैकवुड मुझे संदेह है कि आप ~ 25 के मोंगोडीबी छुड़ौती हमलों के चलते इसे पुनर्विचार करना चाहते हैं। यह शायद सबसे उपयोगी उत्तर –

+0

@ पानागियोटिस कानावोस मैंने प्रश्न की समीक्षा की है और यह अच्छी सलाह हो सकती है, लेकिन यह सवाल का जवाब नहीं है। – Blackwood

40

हर जगह यह लिखा है आप उन्हें इस

bindIp : 127.0.0.1,192.168.0.50 

तरह बाध्य करने के लिए है, लेकिन यह काम नहीं करता है।

# network interfaces 
net: 
     port: 27017 
     bindIp : [127.0.0.1,0.0.0.0] 

:

यह कैसे काम करता है, संस्करण 3.2.0 में

bindIp : [127.0.0.1,192.168.0.50] 

तो []

उदाहरण के अंदर अपने ips जोड़ने का प्रयास करते है हालांकि 0.0.0.0 खुलता है। हालांकि परीक्षण के लिए यह ठीक है, उत्पादन के लिए आपको इस सेटिंग के सुरक्षा प्रभावों को जानना चाहिए!

+5

मुझे नहीं पता कि इसे उपयोगी उत्तर के रूप में क्यों चिह्नित किया गया है। हमने समझने की कोशिश कर घंटों का एक गुच्छा बिताया है कि क्यों हमारा मोंगोडीबी शुरू नहीं होता है, और अंत में हमने पाया कि 'bindIp' पैरामीटर को एकाधिक आईपी प्रबंधित करने के लिए इस नोटेशन की आवश्यकता है। MongoDB पर लॉग गधे में दर्द है। दस्तावेज़ीकरण पर अभी कहा गया है: "एकाधिक आईपी पते से जुड़ने के लिए, अल्पविराम से अलग मूल्यों की एक सूची दर्ज करें"। कुंजी एक सूची का मतलब है। – inigomedina

+1

धन्यवाद! यह मेरी समस्या का समाधान! :) –

+1

वास्तव में – Kaunteya

संबंधित मुद्दे