One of my clients uses Tripp Lite PDUMH20AT power distribution units. They are rather primitive, and upgrading firmware on the management cards is done via ftp; you start an ftp session, upload the firmware image and the device reboots when you quit.
I recently ran into problems with the ftp sessions – I could connect OK, but any attempt to transfer files would fail.
It turns out the ftp server on the devices can't do passive ftp, only active. The fix is simple – issue the "passive" command before uploading the firmware image. Of course, this means it won't work very well through a firewall/NAT router, but that's not a problem as I do the upgrades from a local machine.
The full session looks something like this:
[root@a001 Files4step2]# ftp 8.pdu.a Connected to 8.pdu.a (192.168.254.138). 220 NET+ARM FTP Server 1.0 ready. Name (8.pdu.a:root): admin 331 User admin OK, send password. Password: 230 Password OK. Remote system type is NET+ARM. ftp> bin 200 Type set to I. ftp> passive Passive mode off. ftp> put rom.bin local: rom.bin remote: rom.bin 200 PORT command Ok. 150 About to open data connection. 226 Transfer complete 2109474 bytes sent in 2.35 secs (8.8e+02 Kbytes/sec) ftp> put pwralert.dat local: pwralert.dat remote: pwralert.dat 200 PORT command Ok. 150 About to open data connection. 226 Transfer complete 679080 bytes sent in 0.793 secs (8.4e+02 Kbytes/sec) ftp> bye 221 Goodbye.