【问题标题】:How to host a shiny app on windows? createTcpServer: address not available如何在 Windows 上托管闪亮的应用程序? createTcpServer:地址不可用
【发布时间】:2021-01-22 21:03:29
【问题描述】:

我正在尝试使用 user1693885 的回答 here 和 Nicola 的回答 here 在 Windows 中托管我的 Shinyapp,

app=shinyApp(ui = ui, server = server)
#x <- system("ipconfig", intern=TRUE) # LOCAL ACCESS APPROACH WORKS PERFECLY
#z <- x[grep("IPv4", x)]              #LOCAL ACCESS APPROACH WORKS PERFECLY
#ip <- gsub(".*? ([[:digit:]])", "\\1", z)#LOCAL ACCESS APPROACH WORKS PERFECLY

ip="MY.IP.XXX.XXX.ETC"     # ATTEMPT WITH PUBLIC IP

print(paste0("the Shiny Web application runs on: http://", ip[1], ":1234/"))

runApp(app, launch.browser=FALSE, port = 1234, host = ip[1])

该应用程序可以在其他设备上使用本地访问方法完美连接到同一网络,但是当我尝试使用我的公共 IP 进行远程访问时,网站不会打开,并且当我尝试在主机中使用我的公共 IP 时runApp() 函数中的参数给出错误:createTcpServer: address not available 我已经在防火墙中打开了 1234 端口,这是什么原因造成的?

【问题讨论】:

  • “地址不可用”表示没有网络接口与您尝试侦听的配置 IP 地址。您需要在本地局域网 IP 上收听。您的路由器必须将连接转发到该 IP/端口。然后您可以通过外部客户端连接到您的公共 ip/端口
  • ip[1]?你想在“Y”地址上运行应用程序吗?
  • ip 和 ip[1] 给出相同的结果。 “Y”地址是什么意思?
  • 我已经在路由器中转发了1234端口,错误依旧

标签: r tcp shiny


【解决方案1】:
  1. 您是否也转发了路由器上的端口?
  2. (如果您执行了 1.)您是否尝试从本地网络中的设备通过公共 IP 访问应用程序?您的路由器可能不支持NAT Loopback

另一种方法是将其托管在 docker container 中。

【讨论】:

  • 1- 我做到了。 2-是的,当我通过另一台设备访问我的本地网络时,应用程序打开,但是当我尝试使用其他网络访问时,应用程序不打开。
【解决方案2】:

我遇到了同样的问题(事实上,我在 AWS 上的 EC2 Windows 实例上运行良好)。 我只是放了

host='0.0.0.0' 

这似乎接受来自本地网段以及来自公共 ip 的流量

【讨论】:

    猜你喜欢
    • 2018-10-19
    • 2013-04-09
    • 2019-02-12
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多