Zend certified PHP/Magento developer

FTP request from external network results in ECONNREFUSED

I’m struggling to diagnose a failing FTP connection. Any help would be greatly appreciated. I am attempting to setup a new FTP server on my Raspberry Pi 4, Raspbian Buster, platform. I configured vsftp on the Pi – refer to vsftpd.conf below. I am in a residential setting using Sparklight as my ISP. I’m using an Arris SurfBoard SBG8300 modem/router and it’s connected directly to the RaspberryPi via LAN cable. The RaspberryPi static IP is set to 192.168.10.3. The DMZ is enabled for the Pi. For insurance, I also configured port forwarding for the Pi for ports 21 and 22 (but these should not matter as DMZ by-passes the firewall for the Pi). I checked with Sparklight and they block a few ports but do not block the FTP and SSH ports (20, 21 & 22). I was not able to confirm if they NAT my public IP address — which might be a problem, but it seems unlikely.

Test 1: From a MacBook on the same network (192.168.10.4), I run FileZilla and connect to the FTP server using the Pi’s local IP (192.168.10.3). This works fine and demonstrates the FTP server is running and listening on the port.

Test 2: From the same MacBook, I connect to the Pi’s FTP server using the Arris modem public IP address (currently 96.19.7.224). This results in an ECONNREFUSED message displayed in FileZilla.

Test 3: From yougetsignal.com, I test my public IP with port 21 and it displays “Port 21 is open on 96.19.7.224”.

This is my first time configuring port forwarding and while it seems straight forward, diagnosing issues is rather difficult. Any ideas on how to debug the issue would be greatly appreciated.

vsftpd.conf:
    listen=NO
    listen_ipv6=YES
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    use_localtime=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    ftpd_banner=Welcome to puffy cloud FTP service.
    secure_chroot_dir=/var/run/vsftpd/empty
    pam_service_name=vsftpd
    rsa_cert_file=/etc/vsftpd/vsftpd.pem
    rsa_private_key_file=/etc/vsftpd/vsftpd.key
    ssl_enable=YES
    require_ssl_reuse=YES