我想建立与Windows服务器的FTP连接(假设10.20.30.50( 我正在使用 Python ftblib 包
session = ftplib.FTP('10.20.30.40','admin','password@123')
file = open('download.jpg','rb') # file to send
session.storbinary('STOR download.jpg', file) # send the file
file.close() # close file and FTP
session.quit()
但是我收到错误
套接字错误: [Errno 10061] 无法建立连接,因为目标计算机主动拒绝了它
追踪:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:Python27libftplib.py", line 120, in __init__
self.connect(host)
File "C:Python27libftplib.py", line 135, in connect
self.sock = socket.create_connection((self.host, self.port), self.timeout)
File "C:Python27libsocket.py", line 571, in create_connection
raise err
socket.error: [Errno 10061] No connection could be made because the target machine actively refused it.
我试过telnet 10.20.30.40 8081
,它成功了。
我允许端口 8081 用于 ftp。我通过添加新的入站规则来打开端口。
我在Stack Overflow以及其他站点上尝试了几种可用的解决方案,但他们都在谈论检查端口。我做了所有的事情,但仍然没有帮助。
谢谢
如果您的 FTP 服务器使用非标准端口 (8081(,则必须在使用类时指定该端口FTP
。
session = ftplib.FTP()
session.connect('10.20.30.40', 8081)
session.login('admin','password@123')
另请参阅 Python ftplib - 指定端口。
我忘了在服务器中启用FTP服务。我点击了此链接,它解决了我的问题
https://medium.com/@JohGeoCoder/allowing-ftp-access-on-windows-server-2016-hosted-on-microsoft-azure-af25898df958