首页 > 解决方案 > 无法使用 Python ftplib 连接到服务器,但 PuTTY Plink 可以工作

问题描述

抱歉,如果这听起来太简单,或者我在搜索过程中没有找到重复项:

例如,这些没有帮助:

并且其他教程的示例ftplib或来自其他教程的示例对我不起作用,并且文档更令人困惑而不是有用。我一定是做错了什么,或者我的网络配置有特殊设置可能会阻止ftplib正常工作?我的配置。Win10 上的 Python 3.6.3。

我的问题:以下代码有什么问题?

import ftplib

host = '0.0.0.0'
user = 'user'
passwd = 'XXXX'

with ftplib.FTP(host=host, user=user, passwd=passwd) as ftp:
    print(ftp.dir())
    

一段时间后,我收到错误消息:

TimeoutError: [WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应


不同的方法使用plink

但是,以下使用plink在命令行中对我来说很好。因此,主机、用户或密码或连接似乎没有任何问题。

plink -ssh -batch user@0.0.0.0 -pw XXXX "cd SubDir/SubSubDir/; ls"

但与其乱用plinkand subprocess,我认为ftplib可能更方便。谢谢你的提示。

标签: pythonftpftplibplink

解决方案


Plink 是一个 SSH 客户端。SSH 与 FTP 无关。您可能想使用 SFTP 连接,这是在 SSH 之上运行的完全不同的协议。

对于 Python 中的 SFTP,请使用 Paramiko 或 pysftp。


推荐阅读