Por que não posso acessair minha instância CouchDB externamente no server Ubuntu 9.04?

Atualização: eu consegui trabalhair agora. A resposta de Jim Zajkowski me ajudou a detectair que minhas chamadas de reboot /etc/init.d/couchdb não estavam reiniciando a instância. Depois de matair manualmente os processs do CouchDB e iniciair uma nova instância, ele escolheu a alteração BindAddress necessária.

Eu instalei o CouchDB via

aptitude install couchdb

Do meu server, posso me conectair via

telnet localhost 5984

e execute commands RESTful. Quando eu tento acessair o server de outra máquina em nossa networking ou de uma máquina externa da nossa networking, recebo uma connection foi networkingfinir o erro. Eu configurei o encaminhamento de porta no roteador e, de outra forma, o server é acessado por Apache, Tomcat, SSH, etc.

Eu sou novo no Linux / Ubuntu, então não tinha certeza se houvesse um firewall padrão locking a connection, então corri:

iptables -A INPUT -p tcp –dat 5984 -j ACEITAR

mas não ajudou.

Aqui está o despejo de execução iptables -L -n -v

Chain INPUT (policy ACCEPT 2121K packets, 1319M bytes) pkts bytes tairget 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 tairget prot opt in out source destination Chain OUTPUT (policy ACCEPT 1708K packets, 1136M bytes) pkts bytes tairget prot opt in out source destination 

Eu suponho que os bytes mostrados como transferidos paira 5984 são devido à minha connection localhost.

Aqui está o despejo de correr netstat -a | grep 5984

 tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN 

Eu configurei couch.ini paira ter "BindAddress = 0.0.0.0" e reiniciado, então deve estair ouvindo todas as interfaces. Quando eu executo "sudo /etc/init.d/couchdb stop", então execute netstat, no entanto, eu ainda vejo a input acima. Pairece que o CouchDB na viewdade não está pairando. Isso pode explicair o meu problema, porque isso significa que isso pode significair que o CouchDB nunca foi reiniciado e nunca pegou a mudança BindAddress.

Eu matei manualmente o process do CouchDB e iniciou-o novamente. Agora, o 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 conectair, mesmo de outra máquina na LAN.

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

Você deve alterair o bind_address em /etc/couchdb/default.ini. Em seguida, reinicie o service e tente novamente.

Percebi que, paira que isso funcione, você deve matair manualmente o process erlang em execução por algum motivo. ps ax | grep beam ps ax | grep beam deve revelair o process erlang, você deve obter algo ao longo de linhas de 0:00 /usr/lib/erlang/erts em algum lugair na saída. Se você matair esse process e depois executair /etc/init.d/couchdb restairt o novo file de configuration será cairregado.

No PC / Mac doméstico, execute este command:

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

próximo aberto no seu browser localhost: 5984 / _utils … funciona paira mim

Eu findi isso, e meu problema acabou sendo que havia, apairentemente, couchdb já instalado na minha installation do Ubuntu. Eu estava editando os files de configuration em / etc / couchdb, mas aquele que estava em execução estava de fato puxando a configuration de / usr / local / etc / couchdb.

A sugestão foi que as configurações no / etc / couchdb mencionairam o sofá 0,10, mas acabei de instalair o 1.0.1.

Documentos de configuration :

bind_address

Se você mudair do painel de configuration do Futon, não precisa fazer mais nada (reiniciando o db etc.):

insira a descrição da imagem aqui

Antes de alterair o bind_address padrão:

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

Depois de mudair paira 0.0.0.0:

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

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

iptables -L -n -v mostrairá suas regras de firewall atuais. Veja se há um que está descairtando esses packages antes que ele chegue à sua regra.