Python使用paramiko出现socket.gaierror: [Errno 11001]错误求助
排查与解决
socket.gaierror: [Errno 11001] getaddrinfo failed 错误 嘿,这个问题我之前帮同事排查过!你遇到的这个错误本质是域名解析失败,核心问题出在你定义的host变量上:
问题根源
Paramiko的Transport类接收的主机参数只需要纯主机名/IP地址,但你给的host = "sftp://sftp.xxxxx.com"带了sftp://这个协议前缀。系统会把整个字符串当作域名去解析,显然不存在叫sftp://sftp.xxxxx.com的主机,自然就触发了解析失败的错误。
修复方案
把host变量里的sftp://前缀去掉,改成纯主机名即可:
import sys sys.path.append ('C:/Users/xxxxx/source/packages') import paramiko # 去掉sftp://前缀,保留纯主机名 host = "sftp.xxxxx.com" port = 22 transport = paramiko.Transport((host, port)) password = "xxxx" username = "xxxxx" # 后续代码...
额外排查点(如果修复后仍报错)
- 测试你的机器是否能正常解析这个域名:打开命令行执行
ping sftp.xxxxx.com,看是否能得到对应的IP地址 - 检查网络防火墙是否允许你的机器访问该SFTP服务器的22端口
- 确认SFTP服务器的域名拼写完全正确,没有大小写或字符错误
内容的提问来源于stack exchange,提问作者Diegoctn
相关产品推荐
相关产品推荐

