You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不使用任何JAR文件的情况下通过Databricks连接SFTP服务器

Python ftplib 连接失败排查方案

首先运行最小验证代码定位错误:

from ftplib import FTP

# 替换为实际的FTP服务器地址、用户名、密码
FTP_HOST = "xxx.xxx.xxx.xxx"
FTP_USER = "your_username"
FTP_PWD = "your_password"

try:
    # 初始化连接,设置超时避免无响应
    ftp = FTP(host=FTP_HOST, timeout=15)
    # 登录认证
    login_resp = ftp.login(user=FTP_USER, passwd=FTP_PWD)
    print(f"连接登录成功,服务器返回:{login_resp}")
    # 测试列目录验证功能正常
    print(f"根目录文件列表:{ftp.nlst()}")
    ftp.quit()
except Exception as e:
    print(f"连接失败,错误信息:{str(e)}")

常见错误对应解决方案

  • 端口连通性报错
    先通过本地命令验证21端口是否可达:telnet {FTP_HOST} 21,如果端口不通,优先排查服务器安全组/防火墙是否放通21端口、FTP服务是否正常启动、公网IP是否正确、本地网络是否有出口限制。
  • 列目录/操作超时
    大概率是主动/被动模式不匹配,ftplib默认开启被动模式,若FTP服务器仅支持主动模式,登录完成后添加代码关闭被动模式:
    ftp.set_pasv(False)
    
    若服务器要求被动模式,需确认服务器防火墙已放通被动模式的端口段,对应配置在FTP服务端的配置文件中。
  • FTPS加密连接报错
    若使用的是FTPS协议,不能直接用FTP类,需改用FTP_TLS类:
    from ftplib import FTP_TLS
    ftp = FTP_TLS(host=FTP_HOST, timeout=15)
    ftp.login(user=FTP_USER, passwd=FTP_PWD)
    # 开启数据传输链路加密
    ftp.prot_p()
    
  • 编码乱码/报错
    部分非英文FTP服务端编码不兼容,可手动指定编码适配:
    # 适配中文服务端常用编码
    ftp.encoding = "gbk"
    # 或通用utf-8
    ftp.encoding = "utf-8"
    
  • 认证失败报错
    确认用户名密码是否正确,是否有IP白名单限制,部分FTP服务端会触发多次错误尝试后临时封禁IP,可更换网络环境或等待10分钟后重试。

内容的提问来源于stack exchange,提问作者Venigalla Sai Chowdary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:48:02