更新:我现在可以正常工作了。Jim Zajkowski的回答帮助我检测到/etc/init.d/couchdb重新启动调用实际上并未重新启动实例。在我手动终止CouchDB进程并启动新实例之后,它选择了必需的BindAddress更改。
我已经通过安装了CouchDB
资质安装ouchdb
在我的服务器上,我可以通过
telnet本地主机5984
并执行RESTful命令。当我尝试从网络上的另一台计算机或网络外部的计算机访问服务器时,出现“连接已重置”错误。我已经在路由器上设置了端口转发,并且可以通过Apache,Tomcat,SSH等访问该服务器。
我是Linux / Ubuntu的新手,所以不确定是否有默认防火墙阻止连接,所以我运行了:
iptables -A输入-p tcp --dport 5984 -j接受
但这没有帮助。
这是运行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
我假设显示为5984传输的字节归因于我的本地主机连接。
这是运行netstat -an的转储。grep 5984
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
我将ouch.ini配置为具有“ BindAddress = 0.0.0.0”并重新启动,因此它应该在所有接口上进行侦听。当我运行“ sudo /etc/init.d/couchdb stop”然后运行netstat时,我仍然看到上面的条目。看起来CouchDB实际上并没有停止。这可能解释了我的问题,因为这意味着可能意味着CouchDB从未真正重启过,也从未获得过BindAddress更改。
我手动终止了CouchDB进程,然后再次启动了它。现在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
即使从LAN上的另一台计算机,我仍然无法连接。