मैं अपने CouchDB उदाहरण को Ubuntu 9.04 सर्वर पर बाहरी रूप से एक्सेस क्यों नहीं कर सकता?


27

अद्यतन: मुझे यह अब काम कर रहा है। जिम जज्कोव्स्की के जवाब ने मुझे यह पता लगाने में मदद की कि मेरे /etc/init.d/couchdb रिबूट कॉल वास्तव में उदाहरण को रिबूट नहीं कर रहे थे। जब मैंने CouchDB प्रक्रियाओं को मैन्युअल रूप से मार दिया और एक नया उदाहरण शुरू किया, तो उसने आवश्यक BindAddress परिवर्तन उठाया।

मैंने CouchDB के माध्यम से स्थापित किया है

एप्टीट्यूड को काउचडब स्थापित करें

अपने सर्वर से, मैं के माध्यम से कनेक्ट कर सकते हैं

टेलनेट लोकलहोस्ट 5984

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

मैं लिनक्स / उबंटू के लिए नया हूं, इसलिए मुझे यकीन नहीं था कि अगर कनेक्शन को अवरुद्ध करने वाला एक डिफ़ॉल्ट फ़ायरवॉल था, तो मैं भाग गया:

iptables-INPUT -p tcp --dport 5984 -j ACCEPT

लेकिन इससे कोई फायदा नहीं हुआ।

यहाँ चल रहे iptables से डंप है -L -n -v

Chain INPUT (policy ACCEPT 2121K packets, 1319M bytes)
 pkts bytes target     prot opt in     out     source               destination
   70  3864 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:5984
    9  1647 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 1708K packets, 1136M bytes)
 pkts bytes target     prot opt in     out     source               destination

मुझे लगता है कि 5984 के लिए हस्तांतरित होने वाले बाइट्स मेरे लोकलहोस्ट कनेक्शन के कारण हैं।

यहाँ netstat -an चलाने से डंप है grep 5984

tcp        0      0 127.0.0.1:5984          0.0.0.0:*               LISTEN

मैंने "BindAddress = 0.0.0.0" होने के लिए couch.ini को कॉन्फ़िगर किया और रिबूट किया, इसलिए इसे अन्य इंटरफेस पर सुनना चाहिए । जब मैं "sudo /etc/init.d/couchdb stop" चलाता हूं, तो netstat चलाते हैं, हालांकि, मैं अभी भी उपरोक्त प्रविष्टि देखता हूं। ऐसा लगता है कि CouchDB वास्तव में बिल्कुल नहीं रोक रहा है। यह मेरी समस्या की व्याख्या कर सकता है, क्योंकि इसका मतलब है कि इसका मतलब यह हो सकता है कि काउचडीबी ने वास्तव में कभी रिबूट नहीं किया और कभी भी बिंदासड्रेस परिवर्तन नहीं उठाया।

मैंने CouchDB प्रक्रिया को मैन्युअल रूप से मार दिया और इसे फिर से शुरू किया। अब नेटस्टैट शो:

 tcp        0      0 127.0.0.1:5984          0.0.0.0:*               LISTEN
 tcp        0      0 127.0.0.1:5984          127.0.0.1:35366         TIME_WAIT

मैं अभी भी कनेक्ट नहीं कर सकता, यहां तक ​​कि लैन पर किसी अन्य मशीन से भी।


यह समस्या अभी भी उबंटू 12 में मौजूद है। आपको लगता है कि पैकेज मेंटेनर ने इसे अब तक ठीक कर लिया होगा?
मार्क ई। हसे

जवाबों:


33

क्या netstat -an | grep 5984कहता है? यह कहता है 127.0.0.1:5984या *:5984? यदि यह है 127.0.0.1, तो सभी इंटरफेस को सुनने के लिए काउचडब को सेट करने की आवश्यकता है।


3
"tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN" परिणाम है। मैंने "BindAddress = 0.0.0.0" होने के लिए couch.ini को कॉन्फ़िगर किया और रिबूट किया, इसलिए इसे अन्य इंटरफेस पर सुनना चाहिए। हालांकि यहाँ अजीब हिस्सा है: जब मैं "sudo /etc/init.d/couchdb stop" चलाता हूं, तो netstat चलाता हूं, फिर भी मुझे उपरोक्त प्रविष्टि दिखाई देती है। ऐसा लगता है कि CouchDB वास्तव में बिल्कुल नहीं रोक रहा है। यह मेरी समस्या की व्याख्या कर सकता है, क्योंकि इसका मतलब है कि यह संभवत: कभी रिबूट नहीं किया गया था, और शायद कभी भी बिंदासड्रेस परिवर्तन नहीं उठाया गया
rcampbell

3
हाँ, मैं एक पृष्ठभूमि प्रक्रिया के रूप में चल रहा था। यह मेरे लिए काम करता है जब मैंने एक बार couchdb का उपयोग करके couchdb को मार दिया और इसे फिर से शुरू किया
Kristian

2
इस जवाब से मुझे मदद मिली! मैं यह साझा करना चाहता था कि कोई व्यक्ति फ़ुटन वेब इंटरफ़ेस का उपयोग करके इस सेटिंग को आसानी से बदल सकता है, बिना डिस्क पर वास्तविक कॉन्फ़िगरेशन फ़ाइल को खोजने और संपादित करने के लिए । बस 127.0.0.1:5984/_utils/config.htmlअपने सेटअप के लिए (या समतुल्य URL पर जाएँ) और विकल्प मान को डबल क्लिक करें, संपादित करें, फिर हरे चेक मार्क पर क्लिक करें।
स्टीव बेनर

@SteveBenner दुर्भाग्य से 127.0.0.1:5984/_utils/config.html कुछ भी नहीं लाता है!
डॉ। जैकी '’

@rcampbell couch.ini कहाँ है?!
डॉ। जैकी '’


7

मैंने देखा कि इसे काम करने के लिए आपको किसी कारण से मैन्युअल रूप से चल रही इरलांग प्रक्रिया को मारना होगा। ps ax | grep beamerlang प्रक्रिया को प्रकट करने के लिए चाहिए, आपको 0:00 /usr/lib/erlang/ertsआउटपुट में कहीं न कहीं लाइनों के साथ कुछ प्राप्त करना चाहिए । यदि आप इस प्रक्रिया को मारते हैं और फिर /etc/init.d/couchdb restartनई कॉन्फिगर फाइल को लोड किया जाएगा।


मेरे लिए भी यही है - केवल बीम प्रक्रिया को मारने के बाद, फिर काउचडब-डी करें, और फिर सर्विस स्टॉप / स्टार्ट करें। क्या नई सेटिंग प्रभावी हुई।
बॉबी

4

घर पर पीसी / मैक इस आदेश को चलाने:

ssh -L 5984:localhost:5984 YOUR-SERVER-IP-HERE

आपके ब्राउज़र में अगला खुला लोकलहोस्ट: 5984 / _utils ... यह मेरे लिए काम करता है


4

कॉन्फ़िगरेशन डॉक्स :

bind_address

यदि आप इसे Futon कॉन्फ़िगरेशन पैनल से बदलते हैं, तो आपको कुछ और करने की ज़रूरत नहीं है (db को रीबूट करते हुए):

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

डिफ़ॉल्ट bind_address बदलने से पहले:

peter@earth:~/$ netstat -an | grep 5984
tcp        0      0 127.0.0.1:5984          0.0.0.0:*               LISTEN

0.0.0.0 में बदलने के बाद:

peter@earth:~/$ netstat -an | grep 5984
tcp        0      0 0.0.0.1:5984          0.0.0.0:*               LISTEN

गैर-गुरुओं पर ध्यान दें: वे कंप्यूटर जो आपकी पहुंच नहीं बना सकते हैं (सामान्य रूप से, आपके स्थानीय नेटवर्क के बाहर कुछ भी) अब भी आपके कंप्यूटर (CouchDB या कुछ और) तक नहीं पहुंच पाएंगे।


हालांकि यह उत्तर बहुत पुराना है, यह सही जगह ले जाता है। Futon को Fauxton के साथ बदल दिया गया है, लेकिन मुझे लगता है कि लोगों को कॉन्फ़िगरेशन में bind_address को बदलने का लाभ मिलेगा।
स्कॉट बिग्स

2

मुझे इसका सामना करना पड़ा, और मेरी समस्या समाप्त हो रही थी कि उबंटू की स्थापना में, जाहिरा तौर पर, काउचडब पहले से ही स्थापित था। मैं / etc / couchdb के तहत कॉन्फिग फाइलों को एडिट कर रहा था, लेकिन जो चल रहा था वह वास्तव में / usr / लोकल / etc / couchdb से कॉन्फिग खींच रहा था।

टिप-ऑफ यह था कि / etc / couchdb में कॉन्फ़िगर किए गए काउच 0.10 का उल्लेख करते हैं, लेकिन मैंने सिर्फ 1.0.1 स्थापित किया था।


1

iptables -L -n -vआपको आपके मौजूदा फ़ायरवॉल नियम दिखाएंगे। देखें कि क्या कोई ऐसा है जो आपके नियम से पहले उन पैकेटों को गिरा रहा है।


तालिका में सूचीबद्ध कोई भी नियम नहीं हैं। अन्यथा, तीन ACCEPT, 5984 के लिए एक और 8080 के लिए दो डुप्लिकेट हैं। मुझे यकीन नहीं है कि 8080 के लिए दो सटीक डुप्लिकेट क्यों हैं, और जब मैं अपने नेटवर्क के Tomcat (8080 पर चलने) को हिट करने की कोशिश करता हूं, तो यह विफल हो जाता है, यहां तक ​​कि हालांकि हमारे नेटवर्क की मशीनें टॉमकैट को हिट कर सकती हैं।
rcampbell

उत्पादन दिखा मन? जरूरत पड़ने पर अपना आईपी निकाल लें।
बिल वीस

कैसे चल रहा है lsof -i -n -P | grep LISTENऔर पोस्टिंग के बारे में ? आप CouchDB प्रक्रिया की तलाश कर रहे हैं, और यह किसके लिए बाध्य है। यदि यह है 127.0.0.1:5984, तो आपको बाहरी कनेक्शन सुनने के लिए CouchDB को कॉन्फ़िगर करने की आवश्यकता है। यदि यह *:5984ठीक है, तो कम से कम काउचडीबी सही तरीके से कॉन्फ़िगर किया गया है :)
बिल वीस

हाय बिल, जल्दी जवाब नहीं देने के लिए खेद है। मैंने आपके द्वारा अनुरोध किए गए कच्चे डंप को पोस्ट किया है।
अक्टूबर को rcampbell

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