使用 Python3 的 FTPS 在使用 no pasv 的命令或非法端口命令上挂起

使用 Python3 的 FTPS 在使用 no pasv 的命令或非法端口命令上挂起

我正在尝试使用密码和客户端证书设置 FTPS 连接,但在建立连接后,我无法检索目录列表或任何内容...当我使用 set_pasv(False) 时,它要么挂起(不执行任何操作),要么显示 500 非法 PORT 命令。这是使用 curl(有效)和 Python 时发生的情况:

niels@nielshome:~$ curl -u testuser --ftp-ssl --cert client.crt --key client.key ftp://portal.xxxxx.nl/HLCDSXX_103-001-001_GTAACCGA-AAGACACC_L003_R2.fastq.gz -O
Enter host password for user 'testuser':
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  5 2044M    5  114M    0     0  12.2M      0  0:02:47  0:00:09  0:02:38 12.5M^C
niels@nielshome:~$ python3
Python 3.6.8 (default, Jan 14 2019, 11:02:34) 
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from ftplib import FTP_TLS
>>> ftps = FTP_TLS('portal.xxxxx.nl',keyfile='/home/niels/client.key',certfile='/home/niels/client.crt', user='testuser', passwd='blabla')
>>> a = ftps.mlsd()
>>> for f in a:
...     print(f)

在此之后什么也没有发生...我一直在等待......当我说 passv false 时,它​​只会说非法端口命令,就像我上面说的那样。

相关内容