I have a server running Centos 7 and vsftpd-3.0.3 (installed from source to get the latest version, though everything I describe was also applicable to the vsftpd-3.0.2 version that was previously installed).
vsftpd is configured to use passive ports set to the range 10100-10500, the firewall is allowing all the necessary ports. The server sits behind some routing/NATing that I don't control, but seems to be working correctly.
Connecting remotely from a Fedora 30 machine:
$ curl ftp://ftp.domain.com # works - display directory listing
$ wget ftp://ftp.domain.com # fails
==> PASV ... couldn't connect to 10.xx.xx.xx port 45027: Connection refused
$ lftp ftp.domain.com # works - login with anonymous and 'ls' returns dir list
$ ftp ftp.domain.com # fails - login with anonymous and 'ls returns
ftp> ls
227 Entering Passive Mode (10,xx,xx,xx,176,231).
ftp: connect: Connection refused
I don't see how it can be a server setting since curl and lftp work, but I have no idea why wget and ftp don't work.