Python Error 500 conexión FTP (activo) usando ftplib

les comento que tengo un error que me rompe la cabeza…

Tengo que conectarme a un FTP vía python 3, estoy utilizando la librería ftplib. Resulta que el servidor FTP acepta conexiones en modo activo, al indicar que tiene que ser modo activo me da error, si no uso el modo activo me da timeout.
Usando FileZilla compruebo que puedo acceder ok al FTP en modo activo.

import ftplib

site = "XXX.XXX.X.X"
puerto = "21"
username = "XXXXXXX"
password= "XXXXXXX"

ftp = FTP(host=site, user=username, passwd=password)
ftp.set_debuglevel(2)
ftp.set_pasv(False)
ftp.login(user=username, passwd=password)
ftp.dir()

En la consola recibo el siguiente error al pasar el parámetro ftp.set_pasv(False) para ponerlo en modo activo.

*cmd* 'USER XXXXXXX'
*put* 'USER XXXXXXXrn'
*get* '331 Password required for XXXXXXX.n'
*resp* '331 Password required for XXXXXXX.'
*cmd* 'PASS ******'
*put* 'PASS ******rn'
*get* '230 User XXXXXXXlogged in.n'
*resp* '230 User XXXXXXXlogged in.'
*cmd* 'TYPE A'
*put* 'TYPE Arn'
*get* '200 Type set to A.n'
*resp* '200 Type set to A.'
*cmd* 'PORT 172,19,55,105,174,27'
*put* 'PORT 172,19,55,105,174,27rn'
*get* '500 Invalid PORT Command.n'
*resp* '500 Invalid PORT Command.'
Traceback (most recent call last):
File "neotelFtpBPC.py", line 14, in <module>
    ftp.dir()
File "/usr/lib/python3.8/ftplib.py", line 558, in dir
    self.retrlines(cmd, func)
File "/usr/lib/python3.8/ftplib.py", line 451, in retrlines
    with self.transfercmd(cmd) as conn, 
File "/usr/lib/python3.8/ftplib.py", line 382, in transfercmd
    return self.ntransfercmd(cmd, rest)(0)
File "/usr/lib/python3.8/ftplib.py", line 363, in ntransfercmd
    with self.makeport() as sock:
File "/usr/lib/python3.8/ftplib.py", line 311, in makeport
    resp = self.sendport(host, port)
File "/usr/lib/python3.8/ftplib.py", line 290, in sendport
    return self.voidcmd(cmd)
File "/usr/lib/python3.8/ftplib.py", line 280, in voidcmd
    return self.voidresp()
File "/usr/lib/python3.8/ftplib.py", line 253, in voidresp
    resp = self.getresp()
File "/usr/lib/python3.8/ftplib.py", line 248, in getresp
    raise error_perm(resp)
ftplib.error_perm: 500 Invalid PORT Command.

Si no paso el ftp.set_pasv(False) recibo timeout porque si o si debe ser en modo activo.

Se les ocurre que puede estar pasando? O existe alguna otra librería que pueda probar?