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

StackBlitz连接本地机器出现ECONNREFUSED错误求助

本地Express服务器无法被StackBlitz云端容器访问的解决办法

问题详情

本地运行的Express服务器,从StackBlitz Web容器访问时出现连接拒绝错误:

FetchError: request to https://192.168.1.23:8443/ failed, reason: connect ECONNREFUSED 192.168.1.23:8443

已尝试操作:

  • 启用HTTPS
  • 开启CORS
  • 将服务器监听地址设为0.0.0.0

本地服务器代码

var fs = require('fs');
var http = require('http');
var https = require('https');
var cors = require('cors')
var privateKey = fs.readFileSync('key.pem', 'utf8');
var certificate = fs.readFileSync('cert.pem', 'utf8');

var credentials = { key: privateKey, cert: certificate };
var express = require('express');
var app = express();
app.use(cors())

app.get('/', (_, res) => res.send(`hello`));

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);

httpServer.listen(8080, '0.0.0.0');
httpsServer.listen(8443, '0.0.0.0');

StackBlitz容器代码

import fetch from 'node-fetch';

const url = 'https://192.168.1.23:8443/';

const response = await fetch(url)
  .catch((err) => console.error(err));
console.log(response?.status || 'failed');

核心原因

StackBlitz的代码运行在云端容器环境中,不属于你本地的局域网,因此无法直接访问内网IP(192.168.1.23)对应的服务——这类内网地址仅能被同一局域网内的设备访问,云端容器不在这个网络范围内。

解决步骤

  1. 使用内网穿透工具暴露公网访问地址
    这类工具可以将本地服务器的端口映射到公网,让云端容器能通过公网URL访问。比如:

    • 用ngrok:运行命令 ngrok https 8443,工具会生成一个公网HTTPS地址(如https://abc123.ngrok.io),将StackBlitz代码中的url替换为这个地址即可。
    • 用localtunnel:运行命令 lt --port 8443 --ssl,同样会得到一个公网URL用于替换。
  2. 确认本地防火墙允许端口入站
    检查本地操作系统的防火墙设置,确保8443端口的入站连接被允许,避免本地防火墙拦截请求。

  3. 验证服务器监听状态
    用以下命令确认服务器确实在0.0.0.0:8443监听:

    • Windows:netstat -an | findstr 8443
    • macOS/Linux:lsof -i :8443

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:05:30