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

Lightsail Ubuntu上Gunicorn服务器无法访问:ECONNREFUSED错误

排查与解决步骤

1. 修正Gunicorn的监听地址

Gunicorn默认仅绑定127.0.0.1:8000,仅允许服务器本地访问,外部请求会直接被拒绝。启动时必须明确指定绑定到所有可用网卡:

gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:8000
  • -w 4:根据实例配置调整工作进程数,示例为4个
  • -k uvicorn.workers.UvicornWorker:FastAPI需依赖Uvicorn工作器运行
  • main:app:替换为你的FastAPI入口文件名和app实例名称
  • --bind 0.0.0.0:8000:核心配置,让Gunicorn监听服务器所有网卡的8000端口

2. 确认Gunicorn监听状态

启动后在服务器终端执行以下命令,验证端口监听情况:

sudo netstat -tulpn | grep 8000

若输出包含0.0.0.0:8000且对应进程为gunicorn,说明监听正常;若显示127.0.0.1:8000,则是绑定地址未设置正确。

3. 服务器本地测试API可用性

在Lightsail实例终端内用curl测试本地访问:

curl http://127.0.0.1:8000

若能返回API响应,说明Gunicorn与FastAPI本身无问题,问题出在外部网络层面;若本地访问失败,检查依赖是否安装完整、入口文件路径或app实例名是否正确。

4. 检查Lightsail实例级防火墙

即使关闭了Ubuntu系统防火墙,Lightsail还有实例专属的网络防火墙规则,需确认8000端口入站规则已开放:

  • 登录AWS Lightsail控制台,进入目标实例详情页
  • 切换至「网络」标签,在「防火墙」区域添加规则:
    • 协议:TCP
    • 端口范围:8000
    • 来源:0.0.0.0/0(测试阶段允许所有外部访问,后续可按需限制IP范围)

5. 再次确认端口占用情况

执行以下命令排查8000端口是否被其他进程占用:

sudo lsof -i :8000

若输出为空,端口确实空闲;若有其他进程占用,终止进程后重新启动Gunicorn。

6. 查看Gunicorn启动日志

不要后台启动Gunicorn,直接在前台运行以查看实时报错:

gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app --bind 0.0.0.0:8000

若存在模块缺失、入口文件错误等问题,此处会直接显示错误信息,针对性修复即可。

内容的提问来源于stack exchange,提问作者M Bilal Ayaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 16:55:12