2

I have an R script which is outputs values through an API using Plumber, all runs fine on my local machine (windows 10) when using a 127.0.0.1 or localhost address in the browser, but if I change to use my machines actual IP the browser throws a 'refused to connect' error( I'm running this as a test, before moving everything onto a networked server). Any ideas if this should work? the literature seems to suggest it should...or any tips on what might be preventing this from working?

thanks

4

2 回答 2

1

您需要将 127.0.0.1 替换为 0.0.0.0 以使您的机器 ip 可以访问您的 api。

library(plumber)
r <- plumb("api.R")
r$run(host = "0.0.0.0", port = 8000)
于 2020-02-04T11:12:52.437 回答
0

您可能在您的计算机上配置了防火墙,阻止“外部”访问您的 IP 地址。您需要在本地防火墙中打开一个端口以允许流量进入,但您最好只部署到外部服务器,这样您就不必开始在机器的防火墙上戳洞(真正的安全问题)就像一个实验。

还要记住,“机器的实际 IP 地址”可能有点模棱两可。如果那是您本地网络上的 IP(例如,192.168...172.16...),那么它可能是您机器的防火墙,就像我上面提到的那样。但是,如果您使用的是住宅计算机并尝试访问您的公共IP,则需要配置更多涉及的网络设备(例如您的路由器)。

话虽如此,您可能会更轻松地启动 DigitalOcean 服务器并尝试在那里运行它(请参阅管道工的do_provision功能),因为您不必担心那里的任何这些问题。

于 2018-01-08T16:58:48.130 回答