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

Azure Ubuntu部署Hyperledger Composer后REST服务与Angular应用连接失败求助

解决Hyperledger Composer REST API与Angular应用无法访问的问题

你遇到的核心问题是Azure Ubuntu虚拟机的服务绑定策略与网络权限不匹配导致外部无法访问,我来帮你一步步排查解决:


1. 修正REST服务器的绑定地址

你执行composer-rest-server --card admin@my-network时,服务默认仅绑定localhost(127.0.0.1),这个地址只能在虚拟机内部访问,外部机器根本无法连接。启动时需要手动指定绑定到所有网络接口:

composer-rest-server --card admin@my-network --host 0.0.0.0

修改后服务会监听虚拟机的所有网卡,外部就能通过公网IP正常访问了。

2. 配置Azure网络安全组(NSG)放行端口

Azure虚拟机默认会阻止大部分外部端口的访问请求,你需要手动添加入站规则:

  • 登录Azure门户,找到你的Ubuntu虚拟机
  • 进入「网络」选项卡,点击对应的网络安全组
  • 添加两条入站规则:
    • 允许TCP端口3000(对应REST API服务)
    • 允许TCP端口4200(对应Angular应用)
  • 可以将规则的源地址范围设置为Any(如果需要更安全,也可以指定你本地机器的固定IP)

3. 开放Ubuntu本地防火墙(UFW)

Ubuntu 18.04默认启用UFW防火墙,需要手动放行这两个端口:

sudo ufw allow 3000/tcp
sudo ufw allow 4200/tcp
sudo ufw reload

执行sudo ufw status可以确认规则是否已生效。

4. 验证服务监听状态

用以下命令检查服务是否真的在监听正确的地址:

# 检查REST服务器监听状态
netstat -tulpn | grep :3000
# 检查Angular服务监听状态
netstat -tulpn | grep :4200

如果输出里的Local Address是0.0.0.0:3000或:::3000,说明绑定正确;如果显示127.0.0.1:3000,则代表服务仍仅允许内部访问,需要重新启动服务并指定--host 0.0.0.0参数。

5. 使用虚拟机公网IP访问,而非localhost

最后,你在本地浏览器访问时,不能用localhost(这个地址指向你自己的本地机器),而是要替换成Azure虚拟机的公网IP地址:

  • REST API Explorer:http://<你的VM公网IP>:3000/explorer
  • Angular应用:http://<你的VM公网IP>:4200

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:23:44