需要从linux开发机上下载一个文件到本地,约700M比较大,通过sz
命令下载较慢且传输过程不稳定连续失败,后采用下面方式解决。
cd到一个目录下执行python -m http.server port
,port为服务的端口号:
启动后浏览器中访问服务地址,从这里可以直接查看目录下所有的文件&下载。
下面是服务的参数源码:
主要参数:
-b
绑定服务监听的ip地址,默认值0.0.0.0
公网所有ip都可以访问,127.0.0.1
只能本机访问,该参数不用调整。
-d
设置哪个目录作为根目录,默认值执行命令时的当前所在目录。
port
指定端口号,默认值8000,指定0会随机分配一个未使用的端口。
-d
参数在一些较低python版本中可能没有,上面源码版本是Python 3.12.2,在Python 3.6.5版本中就没有这个参数。可以通过下面代码找到服务的源代码文件位置,直接查看源代码确定支不支持该参数。
import http.server
import inspectprint(inspect.getfile(http.server))
# 返回 http.server 模块的文件路径。
注意
启动服务后可能仍然访问不了服务,检查服务器端口配置,分配的端口是否对外可见。
可以通过nc
命令测试:
1.服务器上指定监听的端口:
nc -l -p port
。
2.其他机器上echo 1 | nc ip port
,ip为服务器的ip,可通过hostname -i
获取。
3.查看服务器是否接收到其他机器发送的数据。