You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS下RStudio Server运行Shiny App报Connection Refused错误

问题

CentOS服务器部署的RStudio Server中运行Shiny应用故障:RStudio Server IDE内启动Shiny App后,会正常弹出新浏览器窗口,但页面提示Connection Refused(连接被拒绝)错误。
测试所用应用为存放于用户家目录下的官方hello world示例Shiny应用。同一台CentOS服务器上同时部署了用于运行已发布应用的Shiny Server,该服务运行状态完全正常。

环境版本

  • CentOS Stream release 8
  • R version 4.1.3 (2022-03-10) -- "One Push-Up"
  • RStudio Server 2021.09.1 Build 372 2009-2021 RStudio, PBC "Ghost Orchid" Release (8b9ced18, 2021-11-08) for CentOS 8
  • Shiny Server v1.5.18.987 (Node.js v16.14.0)

故障表现

启动应用时RStudio IDE内无错误提示,控制台显示应用处于运行状态,输出内容如下:

> runApp('test')

Listening on http://127.0.0.1:7880

仅浏览器端返回连接拒绝错误。


故障原因

Shiny应用默认绑定127.0.0.1环回地址,该地址仅支持服务器本地访问。本地浏览器弹出访问时,实际请求的是你当前操作的个人电脑的7880端口,而非远程CentOS服务器的对应端口,因此触发连接拒绝。
同机部署的Shiny Server默认绑定0.0.0.0对外暴露端口,本身就是面向公网访问设计的服务组件,因此运行不受影响。

解决方法

方法1:开启RStudio Server端口代理(推荐,不改变原有使用习惯)

  1. 编辑RStudio Server主配置文件:
sudo vim /etc/rstudio/rserver.conf
  1. 在配置文件中加入以下内容,关闭应用访问限制、开启端口转发:
server-app-armor-enabled=0
www-frame-origin=same

如果配置文件中已经自定义过www-port、rsession-which-r参数,保留原有配置即可,不需要重复添加。
3. 执行命令重启RStudio Server服务让配置生效:

sudo systemctl restart rstudio-server

重启完成后重新在IDE中启动Shiny应用,RStudio Server会自动将Shiny监听的本地环回端口代理到自身服务路径下,弹出的浏览器页面可正常加载应用。

方法2:临时指定Shiny监听地址(仅适合短期调试)

启动Shiny应用时手动指定host参数为0.0.0.0,让应用监听所有网卡的请求:

runApp('test', host = '0.0.0.0', port = 7880)

使用该方法需要提前在服务器防火墙、云安全组中放开对应端口(本例为7880),访问时直接走http://<服务器IP>:7880路径,不经过RStudio Server的身份校验,不建议长期使用。

校验结果

配置生效后,启动Shiny应用时控制台依旧会显示监听127.0.0.1的对应端口,但RStudio会自动生成带/p/端口号/后缀的代理访问地址,弹出的页面不会再出现连接拒绝错误。


内容的提问来源于stack exchange,提问作者QuentinB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 08:31:06