Update: Ich habe es funktioniert jetzt. Durch die Antwort von Jim Zajkowski konnte ich feststellen, dass meine /etc/init.d/couchdb-Neustartaufrufe die Instanz nicht neu starteten. Nachdem ich die CouchDB-Prozesse manuell beendet und eine neue Instanz gestartet habe, hat sie die erforderliche BindAddress-Änderung übernommen.
Ich habe CouchDB über installiert
aptitude installiere couchdb
Von meinem Server aus kann ich eine Verbindung über herstellen
telnet localhost 5984
und führen Sie RESTful-Befehle aus. Wenn ich versuche, von einem anderen Computer in unserem Netzwerk oder von einem Computer außerhalb unseres Netzwerks auf den Server zuzugreifen, wird der Fehler " Die Verbindung wurde zurückgesetzt" angezeigt. Ich habe die Portweiterleitung auf dem Router eingerichtet und der Server ist ansonsten über Apache, Tomcat, SSH usw. erreichbar.
Ich bin neu in Linux / Ubuntu, daher war ich mir nicht sicher, ob eine Standard-Firewall die Verbindung blockiert. Deshalb habe ich Folgendes ausgeführt:
iptables -A INPUT -p tcp --dport 5984 -j ACCEPT
aber es hat nicht geholfen.
Hier ist der Speicherauszug von 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
Ich gehe davon aus, dass die für 5984 übertragenen Bytes auf meine localhost-Verbindung zurückzuführen sind.
Hier ist der Dump von netstat -an | grep 5984
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
Ich konfigurierte couch.ini „BindAddress = 0.0.0.0“ und neu gestartet, so dass es sollte auf allen Schnittstellen lauschen. Wenn ich "sudo /etc/init.d/couchdb stop" und dann "netstat" ausführe, wird der obige Eintrag weiterhin angezeigt. Es sieht so aus, als würde CouchDB überhaupt nicht anhalten. Dies kann mein Problem erklären, da es bedeuten kann, dass CouchDB nie neu gestartet wurde und die BindAddress-Änderung nie übernommen hat.
Ich habe den CouchDB-Prozess manuell beendet und erneut gestartet. Nun zeigt netstat:
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
Ich kann mich trotzdem nicht verbinden, auch nicht von einem anderen Rechner im LAN.
quelle
Antworten:
Was
netstat -an | grep 5984
heißt das? Heißt es127.0.0.1:5984
oder*:5984
? Wenn dies der127.0.0.1
Fall ist, muss couchdb so eingestellt sein, dass beide Schnittstellen abgehört werden.quelle
127.0.0.1:5984/_utils/config.html
(oder einer entsprechenden URL für Ihr Setup), doppelklicken Sie auf den Optionswert, bearbeiten Sie ihn und klicken Sie dann auf das grüne Häkchen.Sie müssen die Bindeadresse in /etc/couchdb/default.ini ändern. Starten Sie dann den Dienst neu und versuchen Sie es erneut.
quelle
Ich habe festgestellt, dass Sie den laufenden Erlang-Prozess aus irgendeinem Grund manuell beenden müssen, damit dies funktioniert.
ps ax | grep beam
Solltest du den Erlang-Prozess aufdecken, solltest du0:00 /usr/lib/erlang/erts
irgendwo in der Ausgabe etwas in die richtige Richtung bekommen . Wenn Sie diesen Vorgang/etc/init.d/couchdb restart
abbrechen und dann ausführen, wird die neue Konfigurationsdatei geladen.quelle
Führen Sie auf Ihrem Heim-PC / Mac den folgenden Befehl aus:
Als nächstes öffne in deinem Browser localhost: 5984 / _utils ... Es funktioniert bei mir
quelle
Konfigurationsdokumente :
Wenn Sie es im Futon-Konfigurationsfenster ändern, müssen Sie nichts weiter tun (db neu starten usw.):
Vor dem Ändern der Standard-Bindeadresse:
Nach dem Wechsel auf 0.0.0.0:
Hinweis für Nicht-Gurus: Computer, die nicht auf Ihren zugreifen können (normalerweise nichts außerhalb Ihres lokalen Netzwerks), können weiterhin nicht auf Ihren Computer zugreifen (CouchDB oder etwas anderes).
quelle
Ich bin auf dieses Problem gestoßen und es stellte sich heraus, dass in meiner Ubuntu-Installation anscheinend bereits couchdb installiert war. Ich hatte die Konfigurationsdateien unter / etc / couchdb bearbeitet, aber die, die ausgeführt wurde, zog die Konfiguration tatsächlich aus / usr / local / etc / couchdb.
Der Tip war, dass die Configs in / etc / couchdb couch 0.10 erwähnten, aber ich hatte gerade 1.0.1 installiert.
quelle
iptables -L -n -v
zeigt Ihnen Ihre aktuellen Firewall-Regeln an. Sehen Sie nach, ob es eine gibt, die diese Pakete verwirft, bevor sie Ihrer Regel entsprechen.quelle
lsof -i -n -P | grep LISTEN
und zu posten? Sie suchen nach dem CouchDB-Prozess und dessen Bindung. In diesem Fall127.0.0.1:5984
müssen Sie CouchDB so konfigurieren, dass externe Verbindungen abgehört werden. Wenn es*:5984
gut ist, ist mindestens CouchDB richtig konfiguriert :)lsof
Ausgabe?