如何在Plesk/Ubuntu服务器上公开运行Python http.server?
解决Plesk/Ubuntu上Python HTTP服务器外部访问问题
以下是你需要依次排查和配置的步骤:
1. 正确绑定服务器的公网监听地址
Python的http.server默认仅监听本地回环地址(127.0.0.1),外部请求无法到达。你需要让它监听服务器的所有网络接口,执行以下命令:
python3 -m http.server --bind 0.0.0.0 8080
此命令会让服务器监听所有可用网卡,确保外部请求能被接收。
2. 开放Ubuntu系统防火墙(ufw)的8080端口
Ubuntu默认启用ufw防火墙,需手动放行8080端口的入站流量:
sudo ufw allow 8080/tcp sudo ufw reload
执行后可通过sudo ufw status确认规则是否生效。
3. 配置Plesk防火墙放行8080端口
Plesk有独立的防火墙管理模块,系统防火墙规则可能被其覆盖,需在Plesk中添加对应规则:
- 登录Plesk控制面板,进入工具与设置 > 防火墙
- 点击添加规则,选择自定义规则
- 设置规则方向为入站,协议为TCP,端口范围填
8080,动作选择允许后保存 - 确保Plesk防火墙处于启用状态
4. 验证端口监听状态
执行以下命令确认Python进程确实在监听0.0.0.0:8080:
ss -tulpn | grep 8080
若输出显示0.0.0.0:8080且关联进程为python3,说明监听配置正常。
额外提示
Python的http.server仅适用于开发测试场景,不适合生产环境。如果需要长期对外提供服务,建议:
- 将Python应用部署为WSGI应用(例如使用Gunicorn)
- 通过Plesk配置Apache或Nginx作为反向代理,将域名请求转发到Python应用端口,利用Web服务器的性能与安全特性
内容的提问来源于stack exchange,提问作者Miro
相关产品推荐
相关产品推荐

