一、问题来源:
服务器是使用的阿里云的服务器,服务器端的8111端口没有设置任何别的限制,但是在阿里云服务器端并没有设置相应的tcp连接8111端口。
二、解决办法:
1、使用阿里云初始化好的端口;2、配置新的阿里云端口。

三、具体排错方案:
1、确保 uvicorn 运行时绑定了 0.0.0.0,外部才可以访问(如果是轮询地址127.0.0.1只能在服务器端访问)
bash
uvicorn main:app --host 0.0.0.0 --port 8111
2、在服务器上用 curl
试试:
bash
curl http://127.0.0.1:8111
如果本地访问正常,再试试公网 IP:
bash
curl http://公网ip:8111
3、运行以下命令,查看 8111 端口的监听状态:
bash
sudo netstat -tulnp | grep 8111
或者:
bash
sudo lsof -i :8111
正常情况:
tcp 0 0 0.0.0.0:8111 0.0.0.0:* LISTEN 12345/python
错误情况(只监听 127.0.0.1):
tcp 0 0 127.0.0.1:8111 0.0.0.0:* LISTEN 12345/python
如果监听的是 127.0.0.1:8111
,局域网当然访问不到,你需要重新启动程序:
bash
uvicorn predicttemp:app --host 0.0.0.0 --port 8111 --reload
4、检查 ufw
(防火墙)是否拦截了 8011 端口
bash
sudo ufw status
未启用为inactive
ufw
启用了(状态是 active
),手动放行 8011
端口:
bash
sudo ufw allow 8011/tcp
sudo ufw reload
服务器防火墙(iptables)是否允许 8011 端口
bash
iptables -L -n
正常输出:
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8111
可以再手动添加一次
bash
sudo iptables -A INPUT -p tcp --dport 8111 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 8111 -j ACCEPT
bash
sudo iptables-save
5、云服务器的安全组是否允许 8111
如果你的服务器是 阿里云、腾讯云、AWS、华为云,你需要:(上述步骤一、二)
-
阿里云 :进入 ECS控制台 → 安全组 → 添加入站规则 ,放行 TCP 8111 端口。
-
腾讯云 :进入 云服务器防火墙 → 放行 8111 端口。
-
AWS (EC2):进入 Security Groups → Inbound Rules → 允许 8111。
6、服务器端验证
bash
curl http://服务器端ip:8111
会成功连接你的服务器端口!