web-dev-qa-db-fra.com

Pourquoi ne puis-je pas accéder à mon instance CouchDB à l'extérieur du serveur Ubuntu 9.04?

Mise à jour : Je l'ai eu pour travailler maintenant. La réponse de Jim Zajkowski m'a aidé à détecter que mon /etc/init.d/couchdb Les appels de redémarrage n'étaient pas réellement redémarrer l'instance. Après avoir tué manuellement les processus Couchdb et a lancé une nouvelle instance, elle a ramassé le changement obligatoire de la liaison.

J'ai installé Couchdb via

aptitude installation Couchdb

De mon serveur, je peux me connecter via

telnet localhost 5984

et exécuter des commandes reposantes. Lorsque j'essaie d'accéder au serveur d'une autre machine sur notre réseau ou d'une machine externe de notre réseau, je reçois un la connexion a été réinitialisée Erreur. J'ai configuré le transfert de port sur le routeur et le serveur est autrement accessible via Apache, Tomcat, SSH, etc.

Je suis nouveau à Linux/Ubuntu, donc je n'étais pas sûr s'il y avait un pare-feu par défaut bloquant la connexion, alors j'ai couru:

iptables -a entrée -P TCP --Dport 5984 -J accepter

mais ça n'a pas aidé.

Voici la décharge de l'exécution iptables -l -l -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

Je suppose que les octets montrant comme transférés pour 5984 sont dus à ma connexion localehost.

Voici la décharge de la course à pied NetStat -an | Grep 5984

tcp        0      0 127.0.0.1:5984          0.0.0.0:*               LISTEN

J'ai configuré Couch.ini Pour avoir "Bintaddress = 0.0.0.0" et redémarré, de sorte qu'il devrait Écouter sur toutes les interfaces. Lorsque j'exécute "sudo /etc/init.d/couchdb stop" puis exécutez netstat, cependant, je vois toujours l'entrée ci-dessus. On dirait que Couchdb n'arrête pas du tout. Cela peut expliquer mon problème, car cela signifie que cela peut signifier que CouchDB n'a jamais réellement redémarré et n'a jamais ramassé le changement de liaison.

J'ai tué manuellement le processus Couchdb et j'ai recommencé. Maintenant, NetStat montre:

 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

Je ne peux toujours pas me connecter cependant, même d'une autre machine sur le réseau local.

27
rcampbell

Que fait netstat -an | grep 5984 dire? Dis-il 127.0.0.1:5984 ou *:5984? Si c'est 127.0.0.1, alors Couchdb doit être réglé pour écouter toutes les interfaces.

33
Jim Zajkowski

Vous devez changer le BIND_Address dans /etc/couchdb/default.ini. Puis redémarrez le service et réessayez.

15
filtenborg

J'ai remarqué que pour que cela fonctionne, vous devez tuer manuellement le processus d'exécution d'Erlang pour une raison quelconque .ps ax | grep beam Devrait révéler le processus Erlang, vous devriez obtenir quelque chose le long des lignes de 0:00 /usr/lib/erlang/erts quelque part dans la sortie. Si vous tuez ce processus, puis courez /etc/init.d/couchdb restart Le nouveau fichier de configuration sera chargé.

7
user54291

Configuration Docs :

bind_address

Si vous le modifiez à partir du panneau de configuration du futon, vous n'avez rien à faire d'autre (redémarrer le DB, etc.):

enter image description here

Avant de changer la valeur par défaut_Address:

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

Après avoir changé à 0.0.0.0:

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

NOTE NON GURUS: Ordinateurs qui ne peuvent pas accéder à la vôtre (normalement, que ce soit en dehors de votre réseau local) ne pourra toujours pas accéder à votre ordinateur (COUCHDB ou autre chose).

4
Pete

Sur la maison PC/Mac Exécutez cette commande:

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

suivant ouvert dans votre navigateur localhost: 5984/_utils ... ça marche pour moi

4
Alexander Ovchinnikov

J'ai rencontré cela, et mon problème a fini par être qu'il y avait, apparemment, Couchdb déjà installé dans mon installation d'Ubuntu. J'avais été édité les fichiers de configuration sous/etc/couchdb, mais celui qui fonctionnait était en fait tirant en réalisation de configuration/usr/local/etc/couchdb.

Le TIP-OFF était que les configurations dans/etc/Couchdb ont mentionné le canapé 0,10, mais je venais d'installer 1.0.1.

2
Matt