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

无法从浏览器访问Linux服务器上部署的.NET Core应用,求解决方案

排查与解决步骤

1. 修正Kestrel配置错误

你的appsettings.json中Https端点误用了http协议,这会导致Https服务无法正常启动,修正为:

"Kestrel": {
  "EndPoints": {
    "Http": {
      "Url": "http://0.0.0.0:1000"
    },
    "Https": {
      "Url": "https://0.0.0.0:1001"
    }
  }
}

修正后重新发布并部署应用。

2. 验证端口监听状态

在Linux服务器执行以下命令,确认1000、1001端口是否被Kestrel进程正常监听:

# 用netstat检查端口
netstat -tulpn | grep -E ":1000|:1001"
# 或用更现代的ss命令
ss -tulpn | grep -E ":1000|:1001"

如果无对应端口的监听记录,检查应用启动日志是否有报错,确认dotnet run命令在正确的发布目录执行。

3. 开放服务器防火墙端口

Linux服务器防火墙(如ufw、firewalld)大概率拦截了外部请求,需手动开放端口:

  • 若使用ufw:
    sudo ufw allow 1000/tcp
    sudo ufw allow 1001/tcp
    sudo ufw reload
    
  • 若使用firewalld:
    sudo firewall-cmd --add-port=1000/tcp --permanent
    sudo firewall-cmd --add-port=1001/tcp --permanent
    sudo firewall-cmd --reload
    

4. 测试本地与外部网络连通性

  • 先在服务器本地测试应用是否正常响应:
    curl http://localhost:1000
    # 若启用Https,添加-k参数忽略证书校验
    curl -k https://localhost:1001
    

如果本地能访问,说明问题出在外部链路,检查云服务商安全组(若为云服务器)是否开放了1000、1001端口。

5. 配置Https证书(若启用Https)

Https服务需要有效SSL证书才能正常运行,可在appsettings.json中添加证书配置:

"Https": {
  "Url": "https://0.0.0.0:1001",
  "Certificate": {
    "Path": "/path/to/your/certificate.pfx",
    "Password": "your-cert-password"
  }
}

或通过命令行参数启动时指定证书:

dotnet run appname.dll --urls "https://0.0.0.0:1001" --certificate-path /path/to/cert.pfx --certificate-password your-pass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:02:45