无法连接Realm Object Server 2.0,启动后浏览器与Realm Studio均无法访问
看起来你遇到了ROS服务启动成功但外部(浏览器/Realm Studio)无法连接的问题,结合你提供的启动日志和阿里云ECS的环境,我帮你梳理几个关键排查步骤:
首先先拆解下日志里的关键信息:
info: [sync] Listening on 127.0.0.1:35571 (sync protocol version 22)
info: Realm Object Server has started and is listening on http://0.0.0.0:9080
HTTP服务确实绑定到了0.0.0.0(允许所有网卡访问),但同步服务默认只绑定到本地回环地址127.0.0.1,再加上云服务器的网络限制,这大概率是安全策略/网络层面的问题,按以下顺序排查:
1. 优先检查阿里云ECS安全组配置
这是云服务器最容易忽略的环节:
- 登录阿里云控制台,找到你的ECS实例对应的安全组
- 添加入方向规则,分别允许
9080(HTTP管理端口)和35571(Realm同步端口)的TCP流量 - 测试阶段可以把来源设为
0.0.0.0/0(允许所有IP访问),后续再缩小范围到你本地IP
2. 检查Ubuntu系统防火墙(UFW)状态
Ubuntu默认启用UFW防火墙,确认是否拦截了目标端口:
# 查看当前防火墙规则 sudo ufw status # 如果9080和35571没在允许列表里,添加规则 sudo ufw allow 9080/tcp sudo ufw allow 35571/tcp # 重启防火墙生效 sudo ufw reload
3. 验证端口实际绑定状态
用ss命令确认服务是否真的对外监听:
# 检查9080端口的监听详情 sudo ss -tulpn | grep 9080
如果输出显示0.0.0.0:9080,说明绑定正常;如果是127.0.0.1:9080,则需要修改ROS配置文件,将HTTP服务绑定到所有网卡。
4. 修改同步端口的绑定地址(针对Realm Studio)
日志里同步服务只绑定到本地回环地址,这会导致Realm Studio无法远程连接:
- 找到ROS的配置文件(通常路径为
/etc/realm/configuration.yml,或你安装目录下的config文件夹) - 找到
sync相关配置项,将bind_address改为0.0.0.0:
sync: bind_address: 0.0.0.0 port: 35571
- 重启ROS服务生效:
ros restart
5. 本地验证服务可用性
先在服务器本地用curl测试9080端口是否正常响应:
curl http://localhost:9080
如果能返回JSON或其他内容,说明服务本身没问题,问题肯定出在网络层面;如果本地也访问失败,需要查看ROS的详细日志排查服务启动异常。
按这个顺序排查,90%的概率是安全组或防火墙未放行端口的问题,毕竟你的启动日志已经明确显示服务正常启动了。
内容的提问来源于stack exchange,提问作者339

