1

我已经使用 ftplib 创建了一个 FTP 客户端。我在我的一个 Ubuntu 虚拟机上运行服务器,在另一个上运行客户端。我想使用 ftplib 连接到服务器,我正在通过以下方式进行连接:

host = "IP address of the server"
port = "Port number of the server" 

ftpc = FTP()
ftpc.connect(host, port)

我收到以下错误!

  Traceback (most recent call last):
  File "./client.py", line 54, in <module>
    ftpc.connect(host, port)
  File "/usr/lib/python2.7/ftplib.py", line 132, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout)
  File "/usr/lib/python2.7/socket.py", line 571, in create_connection
    raise err
socket.error: [Errno 111] Connection refused

当我浏览 python 的文档时,我可以看到 ftplib 仅与 FTP(“域名”)中的域名一起使用。我可以使用 IP 地址代替域名吗?就我而言,我无法理解错误。如果有人可以帮助我,那就太好了。

此外,如果我在服务器上使用端口 21,则会收到套接字错误:连接被拒绝。如何为我的 FTP 服务器使用端口 21?

谢谢你。

4

2 回答 2

1

似乎您正在尝试使用 ftplib 连接到 SFTP 服务器,这给了您连接被拒绝的错误。尝试使用 pysftp 而不是 ftplib 看看它是否有效。

在虚拟机上,通过在控制台上键入 ftp 和 sftp 命令进行测试。您将了解机器在哪个服务器上运行,即 ftp 或 sftp。

于 2015-11-23T18:29:33.060 回答
0

为了解决这个问题,我安装并配置了 vsftpd:

  1. sudo apt install vsftpd(如果不存在)
  2. 须藤 vim /etc/vsftpd.conf
  3. 设置“听=是”
于 2022-01-20T10:02:06.710 回答