从另一台PC访问CouchDB

时间:2018-02-28 19:18:59

标签: couchdb

我刚刚在Windows机器上安装了CouchDB并运行良好。

现在,我想从同一网络中的另一台机器进行访问。

我已local.ini bind_address127.0.0.1更改为0.0.0.0

[chttpd]
bind_address = 0.0.0.0
port = 5984

我重新启动了Apache CouchDB服务,但它不起作用。当我尝试从另一台计算机访问时,例如使用curl -X GET http://192.168.25.49:5984,我没有得到任何回复。

当我在本地机器(运行CouchDB的地方)中运行相同的命令时,我得到:

curl -X GET http://192.168.25.49:5984
{"couchdb":"Welcome","version":"2.1.1","features":["scheduler"],"vendor":{"name":"The Apache Software Foundation"}}

我的期望是我从同一网络中的另一台机器运行相同的结果。

2 个答案:

答案 0 :(得分:1)

感谢@Flimzy,问题是Windows防火墙中没有规则。

我刚刚按照this link上的说明创建了允许外部访问的规则:

控制面板> Windows防火墙
高级设置
入境规则>新规则
端口>然后选择“TCP”并输入“5984”作为本地端口 单击“下一步”,然后允许连接 再次单击“下一步”,确保勾选“域”,“私人”和“公共” 为防火墙规则命名,然后保存。

之后,我从另一台机器上访问了CouchDb并得到了想要的答案:

curl -X GET http://192.168.25.49:5984
{"couchdb":"Welcome","version":"2.1.1","features":["scheduler"],"vendor":{"name":"The Apache Software Foundation"}}`

答案 1 :(得分:0)

就我而言,仅允许5984端口通过Windows防火墙是不够的。我在Windows 10计算机上使用Apache CouchDB 2.3.1。我必须执行以下步骤:

  1. .profile { position: relative; top: 20px; left: 100px; } 的{​​{1}}和bind_address部分中将127.0.0.10.0.0.0更改为[chttpd]。在此步骤之后,停止并启动CouchDB。
  2. 在Windows防火墙中创建了入站规则,以允许端口[httpd]完全与@Ricardo在其答案中提到的一样。我仍然无法从同一网络中的另一台计算机访问CouchDB。
  3. 经过大量搜索,实施了this answer中提到的内容,并意识到来自远程计算机的请求正在尝试访问名为erl.exe的程序。 enter image description here
  4. 然后我去检查erl.exe是否被Windows防火墙允许。因此,我浏览到CouchDB/etc/local.ini,然后单击左侧菜单中的5984。瞧!未检查erl。我检查了erl左侧的对勾,并确保同时检查了Control Panel > System and Security > Windows Defender FirewallAllow an app or feature through Windows Defender Firewall复选框是否存在erl。 enter image description here

完成上述操作后,便可以从同一网络中的另一台计算机访问CouchDB。