最基础服务启动只需进入目标文件夹执行python -m http.server 8000,默认监听8000端口并共享当前目录,局域网设备通过http://:8000访问;支持自定义端口、--bind绑定ip、--directory指定路径(python 3.7+),无需安装包或写代码。

直接用 python -m http.server 8000 就能跑起来,不需要装任何包、不用写代码、不依赖外部服务——只要本机装了 Python 3.6+,5 秒内就能让局域网里所有设备访问你的文件。
怎么启动最基础的服务
进到你想共享的文件夹里,执行命令即可:
-
python -m http.server:默认用 8000 端口,共享当前目录 -
python -m http.server 8888:换成你喜欢的端口,避开被占用的(比如 80 需 root 权限,别碰) - Windows 用户注意路径:如果不在目标目录下,不能靠参数跳过去;得先
cd D:share再运行命令 - 终端会输出类似
Serving HTTP on :: port 8000 (http://[::]:8000/),说明已就绪
--bind 和 --directory 参数的实际效果
这两个参数从 Python 3.7 开始支持,但低版本(如 3.6)可能没有 --directory,用前最好确认:
-
--bind 127.0.0.1:只允许本机访问,适合调试 HTML/CSS,避免同事误点 -
--bind 0.0.0.0:显式声明监听所有网卡(默认行为),局域网设备才能通过http://192.168.x.x:8000访问 -
--directory /path/to/share:不用提前cd,直接指定根目录;Linux/macOS 路径用斜杠,Windows 推荐用正斜杠或双反斜杠(D:/data或D:\data) - 顺序无关:
python -m http.server --directory ./files 9000和python -m http.server 9000 --directory ./files效果一样
为什么手机/其他电脑打不开?常见断连原因
不是命令写错了,而是网络层被拦住了。优先排查这几点:
- 防火墙拦截:Windows Defender / macOS 防火墙 / Linux ufw 默认会拦新端口,需手动放行
8000(或你用的端口) - 没在同一个局域网:手机连的是 5G 热点,电脑连的是公司 WiFi —— 这俩根本不通,必须共用一个路由器或热点
- IP 地址填错:在服务端运行
ipconfig(Windows)或ifconfig | grep "inet "(macOS/Linux),找那个以192.168.或10.0.开头的 IPv4 地址,别用127.0.0.1 - 杀毒软件劫持:某些国产安全软件会静默拦截 Python 启动的 HTTP 服务,临时退出试试
后台运行和干净退出的关键操作
关终端就断服务,想让它常驻?别用 nohup 硬扛,容易留僵尸进程:
- 后台启动(Linux/macOS):
python -m http.server 8000 --bind 0.0.0.0 > /dev/null 2>&1 &,末尾&是关键 - 查进程:
ps aux | grep http.server,找到对应 PID - 干净终止:
kill -TERM [PID](别用-9,否则日志来不及刷) - Windows 没原生后台机制,建议用 PowerShell 的
Start-Process或干脆保持 CMD 窗口开着——毕竟只是临时用
真正容易被忽略的点是:这个服务不校验请求来源,也不加密传输,哪怕只在内网用,也别挂敏感配置、密钥、未脱敏数据库文件——它连个登录框都没有。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











