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

树莓派上ASP.NET Core+React+Node.js请求代理失败问题

解决树莓派上React代理ASP.NET Core失败(ECONNRESET)的问题

本地用Visual Studio集成React基础模板搭建的带Node.js的简易网站运行正常,但部署到树莓派后,出现Node.js请求代理到ASP.NET Core失败的问题,错误信息:

[HPM] Error occurred while proxying request 192.168.0.101:44463/login to http://192.168.0.101:5124/ [ECONNRESET]

网络配置:

  • 客户端IP:192.168.0.100
  • 树莓派IP:192.168.0.101
  • ASP.NET Core端口:5124,React端口:44463

以下是排查和解决步骤:

1. 确认ASP.NET Core服务监听地址

登录树莓派执行命令:

netstat -tulpn | grep 5124

检查ASP.NET Core进程是否监听0.0.0.0:5124(允许所有IP访问),如果仅监听127.0.0.1,需修改Program.cs添加:

builder.WebHost.UseUrls("http://0.0.0.0:5124");

确保服务能被树莓派本地及外部客户端访问。

2. 验证端口连通性

  • 树莓派本地测试:执行curl http://192.168.0.101:5124/login,如果无响应,说明ASP.NET Core服务未正常启动或配置错误。
  • 客户端远程测试:从192.168.0.100执行curl http://192.168.0.101:5124/login,如果失败,排查树莓派防火墙或路由器端口拦截问题。

3. 修正setupProxy.js代理配置

确保代理配置中changeOrigin设为true,目标地址正确,示例配置:

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/login',
    createProxyMiddleware({
      target: 'http://192.168.0.101:5124',
      changeOrigin: true,
      secure: false,
    })
  );
};

changeOrigin可避免ASP.NET Core因跨域规则拒绝请求,HTTP服务需将secure设为false。

4. 开放树莓派端口

执行命令开放所需端口:

sudo ufw allow 5124/tcp
sudo ufw allow 44463/tcp
sudo ufw reload

可临时关闭防火墙sudo ufw disable测试是否为防火墙导致问题。

5. 确保React服务监听外部IP

启动React服务时,设置监听0.0.0.0,让客户端能正常访问并触发代理:

HOST=0.0.0.0 PORT=44463 npm start

生产部署时,使用serve等工具也需配置监听0.0.0.0。

6. 查看详细日志定位

  • ASP.NET Core端设置日志级别为Debug,查看请求接收日志;
  • React端启动时开启代理调试日志:
DEBUG=http-proxy-middleware:* npm start

通过日志确认请求转发的具体异常点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:33:21