从另一台电脑访问CouchDB

从另一台电脑访问CouchDB,couchdb,Couchdb,我刚刚在我的Windows机器上安装了CouchDB,运行良好 现在,我想从同一网络中的另一台机器访问 我已将local.ini上的bind\u地址从127.0.0.1更改为0.0.0: [chttpd] bind_address = 0.0.0.0 port = 5984 我重新启动了apachecouchdb服务,但它不工作。当我尝试从另一台计算机访问时,例如使用curl-xgethttp://192.168.25.49:5984,我没有得到任何回应 当我在本地机器(CouchDB正在运行

我刚刚在我的Windows机器上安装了CouchDB,运行良好

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

我已将
local.ini
上的
bind\u地址从
127.0.0.1
更改为
0.0.0

[chttpd]
bind_address = 0.0.0.0
port = 5984
我重新启动了apachecouchdb
服务,但它不工作。当我尝试从另一台计算机访问时,例如使用
curl-xgethttp://192.168.25.49:5984
,我没有得到任何回应

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


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

多亏了@Flimzy,问题在于Windows防火墙中没有规则

我刚刚创建了一个允许外部访问的规则,遵循以下说明:

控制面板>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"}}`

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

我刚刚创建了一个允许外部访问的规则,遵循以下说明:

控制面板>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"}}`

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

  • CouchDB/etc/local.ini
    [chttpd]
    [httpd]
    部分中的
    bind\u地址从
    127.0.0.1
    更改为
    0.0.0
    。完成此步骤后,停止并启动CouchDB
  • 在Windows防火墙中创建了一个入站规则,允许端口
    5984
    ,正如@Ricardo在回答中所提到的那样。我仍然无法从同一网络中的另一台机器访问CouchDB
  • 经过大量搜索,实现了中提到的内容,并意识到来自远程计算机的请求正试图访问一个名为erl.exe的程序。
  • 然后我去检查Windows防火墙是否允许erl.exe。因此,我浏览到
    控制面板>系统和安全>Windows Defender Firewall
    ,并单击左侧菜单中的
    允许应用程序或功能通过Windows Defender Firewall
    。瞧!erl没有被检查。我勾选了erl左边的勾号,并确保选中了erl的
    Private
    Public
    复选框。

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

    在我的情况下,允许端口5984通过Windows防火墙是不够的。我在Windows10机器上使用ApacheCouchDB 2.3.1。我必须执行以下步骤:

  • CouchDB/etc/local.ini
    [chttpd]
    [httpd]
    部分中的
    bind\u地址从
    127.0.0.1
    更改为
    0.0.0
    。完成此步骤后,停止并启动CouchDB
  • 在Windows防火墙中创建了一个入站规则,允许端口
    5984
    ,正如@Ricardo在回答中所提到的那样。我仍然无法从同一网络中的另一台机器访问CouchDB
  • 经过大量搜索,实现了中提到的内容,并意识到来自远程计算机的请求正试图访问一个名为erl.exe的程序。
  • 然后我去检查Windows防火墙是否允许erl.exe。因此,我浏览到
    控制面板>系统和安全>Windows Defender Firewall
    ,并单击左侧菜单中的
    允许应用程序或功能通过Windows Defender Firewall
    。瞧!erl没有被检查。我勾选了erl左边的勾号,并确保选中了erl的
    Private
    Public
    复选框。

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

    “它不工作”不是问题描述。你到底试了什么?结果到底发生了什么?你期望什么呢?当我尝试
    curl-X GET时http://192.168.25.49:5984
    从同一网络中的另一台计算机上,我没有收到响应,因为您可能有防火墙阻止访问。@Flimzy,是的!我在Windows防火墙中创建了一个规则,然后我连接了。“它不工作”不是问题描述。你到底试了什么?结果到底发生了什么?你期望什么呢?当我尝试
    curl-X GET时http://192.168.25.49:5984
    从同一网络中的另一台计算机上,我没有收到响应,因为您可能有防火墙阻止访问。@Flimzy,是的!我在Windows防火墙中创建了一个规则,并获得了连接。