连接到 Python 服务器

连接到 Python 服务器

我已经在命令提示符上使用以下代码创建了一个 python 服务器。

python -m http.server 

您可以在以下位置找到有关如何创建服务器的详细信息Mozilla 的网站。使用该服务器,我网络上的任何计算机都可以使用 IP 地址访问其上的网站192.168.xxx.xxx:8000。当我尝试使用 Putty 和/或 FTP 连接到我的服务器时,它返回unknown host。如何让 FTP 或 Putty 连接到我的服务器?我已经使用我的 Raspberry Pi 搭建了一个服务器,我可以使用 Putty 上的 SSH 来修改服务器。

答案1

据我所知,Python http.server 不支持 FTP。

虽然 Python 确实有一个FTP 库,这本质上是一个客户端库,旨在帮助您的脚本与现有的 FTP 服务器进行通信。遗憾的是,Python 没有“内置” FTP 服务器。

鉴于此,您实际上有两个选择:使用第三方库或自己编写文件传输解决方案。http.server 确实支持电脑生成图像处理因此python -m http.server --cgi至少在理论上可以使用这种机制来传输数据。

对于简单的第三方 FTP 服务器库,您可能希望研究一下pyftpdlib(其中有文档,包括基本教程页)。

关于 Putty,如果你想通过 SSH 进入 PC,据我所知,Windows 没有原生 SSH 服务器。Google 可以在这方面提供帮助,但对于家庭使用,移动版或者自由SSHd可能是您可行的解决方案。


最近我注意到,Windows 10 的更新版本已经足够了,并且适用于 Linux 的 Windows 子系统安装的 (WSL) 可能有一些本机 SSH 选项。但是,我无法就这是否足以满足您的需求做出任何建议。


使用 pyftpdlib

如果您决定使用 pyftpdlib,则可以使用 pip 安装它:

pip install pyftpdlib

对于简单的命令行服务器(类似于 http.server),您可以使用以下命令:

python -m pyftpdlib

这将创建一个具有匿名帐户的只读 FTP 服务器。请注意,您可以使用 启用写入(上传)-w,以及指定其他选项,包括特定接口(如果有)、端口和 FTP 目录:

python -m pyftpdlib -w -i localhost -p 8081 -d "C:\path\to\FTP\anon"

完整的命令行选项列表可通过 获得python -m pyftpdlib -h

pyftpdlib 脚本说明

如果您想在 Windows 上从示例教程脚本运行 pyftpdlib,您应该记住以下几点:

  • Windows 目录分隔符需要转义(即,您需要使用\\文件夹之间而不是仅使用\)。这不适用于通过命令行启动的服务器(见上文)。

  • 如果出现套接字错误,这通常是由于 Windows 的防火墙/权限问题或端口已被使用。无论哪种情况,请更正问题或选择其他端口。

  • 属性perm=authorizer.add_user可选的,但如果省略,则用户默认为只读访问权限。要查看所有权限的含义列表,您应该查看API文档。

相关内容