【发布时间】:2012-08-29 10:17:46
【问题描述】:
我有一个 vpn 连接,当我运行 python -m SimpleHTTPServer 时,它在 0.0.0.0:8000 上提供服务,这意味着它可以通过本地主机和通过我的真实 ip 访问。 我不希望机器人扫描我,并且对只能通过 localhost 访问服务器感兴趣。
有可能吗?
python -m SimpleHTTPServer 127.0.0.1:8000 # doesn't work.
也欢迎任何其他可以使用命令行立即执行的简单 http 服务器。
【问题讨论】:
-
您可以简单地阻止防火墙/路由器在该端口上的外部连接。
-
虽然对 python2 来说是一个很好的问题,但这里可能需要注意的是,在 python3 中,替换
http.server允许立即绑定,例如python3 -m http.server --bind 127.0.0.1 8000就足够了 -
旁注:
SimpleHTTPServer是单线程和阻塞的,这意味着在前一个请求结束之前您将无法执行另一个请求。它没有范围支持,例如用于从特定位置流式传输/查找媒体文件。更好的选择是twisted(pip install twisted),您可以使用twistd -n web --path /运行它。它还可以使用twistd -n ftp -p 2121 -r /进行匿名FTP。更多http服务器单行:gist.github.com/willurd/5720255.
标签: python http command-line python-2.x simplehttpserver