我已经使用this tutorial安装了Acralyzer,并获得了以下参数以将Acra集成到我的Android应用中:

httpMethod = Method.PUT,
reportType = Type.JSON,
formUri = "http://localhost:5984/acra-myap/_design/acra-storage/_update/report",
formUriBasicAuthLogin = "myap-reporter",
formUriBasicAuthPassword = "a11youneedisl0v3"

在安装Acralyzer之前,我跑了
ssh -L5984:127.0.0.1:5984 user@AAA.BBB.CCC.DDD

(在AAA.BBB.CCC.DDD上建立到CouchDB的隧道),其中AAA.BBB.CCC.DDD是我在DigitalOcean的实例的地址。

我很聪明,在安装Acralyzer之后,我终止了ssh进程并尝试打开URL http://AAA.BBB.CCC.DDD:5984/acra-myap/_design/acra-storage/_update/report

我无法通过浏览器连接到它,这意味着Android应用程序将无法将崩溃报告发送到Acralyzer。

为了使Acralyzer的URL(http://AAA.BBB.CCC.DDD:5984/acra-myap/_design/acra-storage/_update/report)在没有ssh隧道的情况下可用,我该怎么办?

最佳答案

您尝试联系的端口似乎未打开。您应该通知iptables(Linux防火墙),以接受端口5984上的传入流量:

sudo iptables -A INPUT -p tcp --dport 5984 -j ACCEPT

您可以找到有关如何创建iptables规则以及如何保存它们的更多信息here

Digital Ocean可能具有防火墙,该防火墙会在您到达服务器之前将您阻止,但是打开实例上的端口值得一试。

07-25 22:25