Por que não consigo acessar minha instância do CouchDB externamente no servidor Ubuntu 9.04?

27

Atualização: Eu consegui trabalhar agora. A resposta de Jim Zajkowski me ajudou a detectar que minhas chamadas de reinicialização /etc/init.d/couchdb não estavam realmente reiniciando a instância. Depois que eu matei manualmente os processos do CouchDB e iniciei uma nova instância, ela pegou a alteração BindAddress necessária.

Eu instalei o CouchDB via

aptitude install couchdb

Do meu servidor, posso me conectar via

telnet localhost 5984

e execute comandos RESTful. Quando tento acessar o servidor de outra máquina em nossa rede ou de uma máquina externa de nossa rede, recebo um erro A conexão foi redefinida . Configurei o encaminhamento de porta no roteador e o servidor pode ser acessado via Apache, Tomcat, SSH, etc.

Sou novo no Linux / Ubuntu, então não tinha certeza se havia um firewall padrão bloqueando a conexão, então eu corri:

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

mas isso não ajudou.

Aqui está o despejo da execução de 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

Eu assumo que os bytes mostrados como transferidos para 5984 são devidos à minha conexão localhost.

Aqui está o despejo da execução netstat -an | grep 5984

tcp        0      0 127.0.0.1:5984          0.0.0.0:*               LISTEN

Eu configurei couch.ini para ter "BindAddress = 0.0.0.0" e reiniciei, então deveria estar escutando em todas as interfaces. Quando eu executo "sudo /etc/init.d/couchdb stop", em seguida, executar netstat, no entanto, ainda vejo a entrada acima. Parece que o CouchDB não está parando de jeito nenhum. Isso pode explicar o meu problema, porque isso significa que o CouchDB nunca foi reinicializado e nunca pegou a alteração BindAddress.

Eu matei manualmente o processo do CouchDB e o iniciei novamente. Agora netstat mostra:

 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

Ainda não consigo me conectar, mesmo de outra máquina na LAN.

    
por rcampbell 29.10.2009 / 12:05

7 respostas

33

O que netstat -an | grep 5984 diz? Diz 127.0.0.1:5984 ou *:5984 ? Se for 127.0.0.1 , então couchdb precisa ser configurado para ouvir todas as interfaces.

    
por 29.10.2009 / 19:17
15

Você precisa alterar o bind_address em /etc/couchdb/default.ini. Em seguida, reinicie o serviço e tente novamente.

    
por 18.10.2010 / 15:20
7

Eu notei que para que isso funcione você deve manualmente matar o processo erlang em execução por algum motivo. ps ax | grep beam deve revelar o processo erlang, você deve obter algo ao longo de linhas de 0:00 /usr/lib/erlang/erts em algum lugar na saída. Se você eliminar esse processo e executar /etc/init.d/couchdb restart , o novo arquivo de configuração será carregado.

    
por 15.09.2010 / 01:21
4

No PC / Mac inicial, execute este comando:

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

em seguida, abra em seu navegador localhost: 5984 / _utils ... Isso funciona para mim

    
por 26.02.2011 / 09:40
4

Documentos de configuração :

SevocêalteraropaineldeconfiguraçãodoFuton,nãoprecisaráfazermaisnada(reinicializandoobancodedados,etc.):

Antes de alterar o bind_address padrão:

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

Depois de mudar para 0.0.0.0:

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

Observe os não-gurus: computadores que não podem acessar o seu (normalmente, qualquer coisa fora de sua rede local) ainda não poderão acessar seu computador (CouchDB ou qualquer outra coisa).

    
por 14.01.2016 / 17:12
2

Eu encontrei isso, e meu problema acabou sendo que havia, aparentemente, couchdb já instalado na minha instalação do Ubuntu. Eu estava editando os arquivos de configuração em / etc / couchdb, mas o que estava rodando estava na verdade puxando a configuração de / usr / local / etc / couchdb.

A dica foi que as configurações em / etc / couchdb mencionavam o couch 0.10, mas eu tinha acabado de instalar o 1.0.1.

    
por 16.11.2010 / 00:37
1

iptables -L -n -v mostrará suas regras atuais de firewall. Veja se há algum que esteja descartando esses pacotes antes que ele chegue à sua regra.

    
por 29.10.2009 / 19:27