简单 HTTP 服务器
100%

网络共享 · 第 3 课

简单 HTTP 服务器

学习如何使用 Python HTTP 服务器临时公开一个受控目录。

Python 的 http.server 模块可以为短期测试或可信传输提供静态文件。它不是生产 Web 服务器,也不提供身份验证、授权、TLS、速率限制或针对恶意流量的强化处理。

准备共享目录

创建只包含打算公开文件的专用目录。启动前应检查隐藏文件、符号链接、权限和敏感元数据。不要共享主目录、仓库根目录、凭据目录或系统路径。

使用 --directory 明确共享根目录:

$ python3 -m http.server 8000 --directory /srv/temporary-share

没有索引文件时,该模块通常会生成目录列表。任何能够访问监听器的人都可能枚举并下载所提供的内容。

为什么使用 --directory /srv/temporary-share

控制监听地址

只有同一主机需要连接时,应绑定到环回地址:

$ python3 -m http.server 8000 --bind 127.0.0.1 --directory /srv/temporary-share

要在可信网络上共享,应有意绑定到适当接口地址,并确认防火墙策略。不使用限制性绑定运行时通常会监听所有可用接口,可能将目录公开到预期网络之外。

谁通常可以访问绑定到 127.0.0.1 的服务器?

测试访问

在服务主机上请求一个已知文件,并检查响应:

$ curl -f http://127.0.0.1:8000/example.txt

进行经过授权的远程测试时,应使用所选接口地址而不是环回地址。既要确认预期文件可访问,也要确认文档根目录以外的文件不可访问。浏览器成功本身不能证明公开范围或机密性合适。

python3 -m http.server 8000 明确选择了哪个端口?

停止并清理

在受监督的终端中运行临时服务,传输完成后使用 Ctrl-C 停止。确认监听器已经消失:

$ ss -ltn 'sport = :8000'

按照数据处理策略移除临时副本,并撤销所有临时防火墙规则。对于持久、需要身份验证或面向互联网的分发,应使用配置了访问控制和 TLS、持续维护的服务器。

临时传输完成后应该做什么?

课程已完成

你已完成 简单 HTTP 服务器

现在,你可以在暴露范围有限的情况下运行临时 Python HTTP 服务器。

  • 只提供专用且经过审查的目录。

  • 绑定到范围最窄的适当地址。

  • 测试预期访问和非预期边界。

  • 之后停止监听器并清理临时访问。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 网络共享