2

如果构建了一个连接到 ftp 服务器的脚本。我已经在我的电脑上对其进行了本地测试并且它的工作,但在服务器上它说:(113,'没有到主机的路由')。如果我用ftp XX.XX.XX.XX连接每个 shell,它工作正常!这就是我尝试在 python 中连接的方式:

            import ftplip
            meinftp = ftplib.FTP(ip)
            meinftp.login(user,password)
            meinftp.cwd(ftpdirectory)

任何想法为什么我没有主机的路线?防火墙没有阻止。

4

4 回答 4

2

我同意 strace 在这里是一个很好的工具,但如果你不熟悉它,或者至少不熟悉 C,它可能会有点令人生畏。

关于使用 strace 和类似工具进行调试: http ://stromberg.dnsalias.org/~strombrg/debugging-with-syscall-tracers.html

于 2012-05-09T13:54:06.413 回答
1

即使 DNS 名称可用,python 也会返回 113 'No route to host',但服务无法正常工作。

可能特定于 FTP 被动选项。

使用 'strace' 运行你的脚本,这样你就可以检查哪个系统调用失败了。

strace -fo /tmp/log python yourscript.py

于 2012-05-09T12:38:37.777 回答
1

另见https://stumbles.id.au/python-ftps-and-mis-configured-servers.html

引用:“我最终在 FileZilla 日志中注意到一条消息,服务器发送了带有不可路由地址的被动回复。使用服务器地址代替。事实证明,FTPS 服务器配置错误,并使用内部 IP 地址回复 PASV 命令无法从公共互联网访问。这似乎是一个足够常见的配置问题,以至于一些 FTP 客户端检测到该问题并使用现有的服务器地址。但 Python 的 FTP 客户端并没有这样做。”

于 2017-02-10T16:50:59.443 回答
0

这很可能是防火墙问题,请尝试禁用防火墙。

于 2012-05-09T12:38:17.370 回答