28 votos

¿Por qué no puedo acceder externamente a mi instancia de CouchDB en el servidor Ubuntu 9.04?

Actualización: Ya lo tengo funcionando. La respuesta de Jim Zajkowski me ayudó a detectar que mi /etc/init.d/couchdb las llamadas de reinicio no estaban realmente reiniciando la instancia. Después de matar manualmente los procesos de CouchDB e iniciar una nueva instancia, ésta recogió el cambio de BindAddress requerido.

He instalado CouchDB a través de

aptitude install couchdb

Desde mi servidor, puedo conectarme a través de

telnet localhost 5984

y ejecutar comandos RESTful. Cuando intento acceder al servidor desde otra máquina de nuestra red o desde una máquina externa a nuestra red, obtengo un La conexión se ha restablecido error. He configurado el reenvío de puertos en el router y, por lo demás, el servidor es accesible a través de Apache, Tomcat, SSH, etc.

Soy nuevo en Linux/Ubuntu, así que no estaba seguro de si había un cortafuegos por defecto que bloqueara la conexión, así que lo ejecuté:

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

pero no sirvió de nada.

Aquí está el volcado de la ejecución 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

Supongo que los bytes que aparecen como transferidos para 5984 se deben a mi conexión localhost.

Aquí está el volcado de la ejecución netstat -an | grep 5984

tcp        0      0 127.0.0.1:5984          0.0.0.0:*               LISTEN

He configurado couch.ini para tener "BindAddress=0.0.0.0" y reiniciar, por lo que debe estar a la escucha en todas las interfaces. Sin embargo, cuando ejecuto "sudo /etc/init.d/couchdb stop" y luego ejecuto netstat, sigo viendo la entrada anterior. Parece que CouchDB no se está deteniendo en absoluto. Esto puede explicar mi problema, porque significa que CouchDB nunca se reinició y nunca recogió el cambio de BindAddress.

Maté manualmente el proceso de CouchDB y lo inicié de nuevo. Ahora netstat muestra:

 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

Sin embargo, sigo sin poder conectarme, incluso desde otra máquina en la LAN.

34voto

Charles Caldwell Puntos 366

¿Qué hace netstat -an | grep 5984 ¿dice? ¿Dice 127.0.0.1:5984 o *:5984 ? Si es 127.0.0.1 entonces couchdb debe estar configurado para escuchar todas las interfaces.

16voto

user57451 Puntos 71

Tienes que cambiar la dirección bind_address en /etc/couchdb/default.ini. A continuación, reinicie el servicio y vuelva a intentarlo.

7voto

Bob Puntos 1

Me he dado cuenta de que para que esto funcione hay que matar manualmente el proceso erlang que se está ejecutando por alguna razón. ps ax | grep beam debería revelar el proceso erlang, debería obtener algo parecido a 0:00 /usr/lib/erlang/erts en algún lugar de la salida. Si matas este proceso y luego ejecutas /etc/init.d/couchdb restart se cargará el nuevo archivo de configuración.

4voto

En el PC/Mac de casa ejecute este comando:

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

a continuación, abra en su navegador localhost:5984/_utils ... A mí me funciona

2voto

Matt Puntos 1115

Me encontré con esto, y mi problema terminó siendo que había, aparentemente, couchdb ya instalado en mi instalación de Ubuntu. Había estado editando los archivos de configuración en /etc/couchdb, pero el que se estaba ejecutando estaba de hecho tirando de la configuración de /usr/local/etc/couchdb.

La pista fue que las configuraciones en /etc/couchdb mencionaban la versión 0.10, pero yo acababa de instalar la 1.0.1.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: