AWS实例从Micro升级到Medium后API调用提示Connection refused求助
确认Node.js服务状态
登录实例后,执行ps aux | grep node查看进程是否存在;如果用进程管理工具(如pm2),执行pm2 list检查服务运行状态。若服务未启动,尝试重启(npm start或pm2 restart <服务名>),查看启动日志定位报错(比如依赖缺失、配置文件错误)。检查端口监听情况
执行ss -tulpn | grep <你的API端口号>,确认服务是否监听0.0.0.0(允许外部访问),而非仅127.0.0.1(仅本地可访问)。若监听地址为127.0.0.1,修改Node.js代码中app.listen的地址参数为0.0.0.0。排查实例本地防火墙
虽然AWS安全组已配置,但实例自身可能有iptables/firewalld规则限制:- 用
iptables -L查看规则,确认允许目标端口的入站流量; - 若使用firewalld,执行
firewall-cmd --list-all检查端口是否开放,未开放则执行firewall-cmd --add-port=<端口>/tcp --permanent && firewall-cmd --reload。
- 用
本地测试服务可用性
在实例内部执行curl http://localhost:<端口>/<测试接口路径>,若返回正常,说明服务本身没问题,问题出在外部网络连通性;若内部也无法访问,聚焦服务启动或配置问题。验证公网IP/弹性IP绑定
确认当前实例的公网IP(或弹性IP)已正确绑定,且API请求使用的是该IP。弹性IP绑定可通过AWS控制台EC2实例详情页检查。检查服务管理配置(如systemd)
若用systemd托管服务,查看配置文件(如/etc/systemd/system/node-api.service),确认ExecStart路径、工作目录、用户权限是否正确。执行systemctl status node-api查看服务状态日志,排查启动失败原因。
内容的提问来源于stack exchange,提问作者keliddos

