我已经安装了CouchDB
aptitude install couchdb
从我的服务器,我可以通过连接
telnet localhost 5984
并执行RESTful命令.当我尝试从我们网络上的另一台机器或从我们网络外部的机器访问服务器时,我得到一个连接被重置错误.我在路由器上设置了端口转发,否则可以通过Apache,Tomcat,SSH等访问服务器.
我是Linux / Ubuntu的新手,所以我不确定是否有阻止连接的默认防火墙,所以我运行:
iptables -A input -p tcp –dport 5984 -j ACCEPT
但它没有帮助.
这是运行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:8080Chain FORWARD (policy ACCEPT 0 packets,0 bytes) pkts bytes target prot opt in out source destinationChain OUTPUT (policy ACCEPT 1708K packets,1136M bytes) pkts bytes target prot opt in out source destination
我假设显示转换为5984的字节是由于我的localhost连接.
这是运行netstat -an |的转储grep 5984
tcp 0 0 127.0.0.1:5984 0.0.0.0:* ListEN
我将couch.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
我仍然无法连接,即使是从局域网上的另一台机器.
解决方法 什么是netstat -an | grep 5984说?它是说127.0.0.1:5984还是*:5984?如果它是127.0.0.1,则需要将couchdb设置为侦听所有接口. 总结以上是内存溢出为你收集整理的linux – 为什么我不能在Ubuntu 9.04服务器上外部访问我的CouchDB实例?全部内容,希望文章能够帮你解决linux – 为什么我不能在Ubuntu 9.04服务器上外部访问我的CouchDB实例?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)