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

Google Cloud Debian VM上.NET 6应用Http请求被拒(ECONNREFUSED)求助

解决Google Cloud Debian VM上.NET 6应用的连接拒绝问题

1. 修正.NET应用的监听地址

.NET 6默认只监听localhost(127.0.0.1),外部请求根本打不进来。你得改成监听所有网卡的地址,三种方法选一种就行:

  • 启动时直接指定URL:
    dotnet run --urls "http://0.0.0.0:5000"
    
  • 修改appsettings.json配置文件:
    {
      "Urls": "http://0.0.0.0:5000"
    }
    
  • 设置环境变量再启动:
    export ASPNETCORE_URLS="http://0.0.0.0:5000"
    dotnet YourApp.dll
    

2. 确认应用真的在监听端口

改完配置重启应用,跑下面的命令检查5000端口是否被占用:

sudo netstat -tulpn | grep :5000

要是能看到dotnet进程对应0.0.0.0:5000的记录,说明监听配置没问题。

3. 检查VM内部的防火墙规则

Debian自带的iptables可能会拦请求,哪怕GCP控制台开了防火墙也没用:

  • 先看当前iptables规则:
    sudo iptables -L
    
  • 临时放行5000端口的入站请求:
    sudo iptables -A INPUT -p tcp --dport 5000 -j ACCEPT
    
  • 要永久生效的话,装个工具保存规则:
    sudo apt-get install iptables-persistent
    sudo netfilter-persistent save
    

4. 核对GCP防火墙规则的细节

你虽然开了5000端口,但得确保这几个点没搞错:

  • 目标标签:规则的目标要包含你的VM用的网络标签,要是没设标签就选“所有实例”
  • 来源IP:测试阶段可以暂时设成0.0.0.0/0(允许所有IP访问),之后再缩范围
  • 协议端口:必须是tcp:5000,别选成udp或者其他协议

5. 验证网络连通性

  • Postman里一定要用VM的外部IP,别填内部IP或者localhost
  • 在VM内部先测本地访问:
    curl http://localhost:5000
    
    能返回内容说明应用本身没问题;再测外部IP:
    curl http://[你的VM外部IP]:5000
    
    要是这个失败,回头检查前面的监听和防火墙配置。

内容的提问来源于stack exchange,提问作者Иван Комаров

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:20:08