Seems reasonable and thanks for pointing out, where the error on the module appears.
The recipient's ftp server seems to throw the HELP command as the reply to entering into PASV.
I compared the output from the same script, which runs OK on old server, and on new server

OLD server

>>> TYPE I <<< 200 Type set to I >>> PBSZ 0 <<< 200 PBSZ Command successful. >>> PROT P <<< 200 PROT Command successful. >>> PASV <<< 227 Entering Passive Mode (XXX,XXX,XXX,XXX,23,237) >>> ALLO 5 <<< 202 ALLO command ignored. >>> STOR test <<< 150 Opening data connection for test. <<< 226 Transfer complete. >>> QUIT <<< 221 Goodbye.

NEW server

>>> TYPE I <<< 200 Type set to I >>> PBSZ 0 <<< 200 PBSZ Command successful. >>> PROT P <<< 200 PROT Command successful. >>> PASV <<< 227 Entering Passive Mode (XXX,XXX,XXX,XXX,23,243) >>> HELP <<< 214- The following commands are recognized (* =>'s unimplemented). <<< USER PORT STOR MSAM* RNTO NLST MKD CDUP <<< PASS PASV APPE MRSQ* ABOR* SITE XMKD* XCUP* <<< ACCT* TYPE MLFL* MRCP* DELE SYST RMD STOU <<< SMNT* STRU MAIL* ALLO CWD STAT XRMD* SIZE <<< REIN MODE MSND* REST* XCWD* HELP PWD MDTM* <<< QUIT RETR MSOM* RNFR LIST NOOP XPWD* FEAT <<< AUTH PBSZ PROT CCC <<< 214 Direct comments to sysadm. <<+ 214 The ALLO command is supported. >>> ALLO 5 <<< 202 ALLO command ignored. >>> STOR test <<+ 555 Can't read command channel socket: >>> QUIT <<+ 555 Can't read command channel socket:
The further attempts to reveal the truth lead me to the strace output:
open("test", O_RDONLY) = 4 ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff91df0b70) = -1 ENOTTY (I +nappropriate ioctl for device) lseek(4, 0, SEEK_CUR) = 0 fstat(4, {st_mode=S_IFREG|0777, st_size=5, ...}) = 0 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 write(2, ">>> PBSZ 0\n", 11>>> PBSZ 0 ) = 11 write(3, "\27\3\1\0\30Y\334L\2637>O\211\225C\313vG\302\233\311/\354\34 +\n\375\26JH", 29) = 29 read(3, "\27\3\1\0.", 5) = 5 read(3, "|\3\256\307\305\26\3N\177\270\255\333\323\365a,\350\n9\234&\3 +52\274\316\320{\2264\301y\204\321"..., 46) = 46 write(2, "<<< 200 PBSZ Command successful."..., 33<<< 200 PBSZ Command + successful. ) = 33 write(2, ">>> PROT P\n", 11>>> PROT P ) = 11 write(3, "\27\3\1\0\30<\203,c\325/\26\211\27*\246Q6\313,F\301\251\247l +\327\227T\236", 29) = 29 read(3, "\27\3\1\0.", 5) = 5 read(3, "\316>\361\207&%\350\351z\301R\234Z\227k\257\370<k9E\267P\225\ +r\300R\6\331\374\273\227"..., 46) = 46 write(2, "<<< 200 PROT Command successful."..., 33<<< 200 PROT Command + successful. ) = 33 write(2, ">>> PASV\n", 9>>> PASV ) = 9 write(3, "\27\3\1\0\26\207\31Pp!\301R\17\31\2600\275\203\326\34\233Z\2 +1\225|\r|", 27) = 27 read(3, "\27\3\1\0A", 5) = 5 read(3, "\263+\7(\272Fi\322\356\24 ;i\246\213\374\253\346\206\23\n'\24 +4\366c\222\306wkCF\301"..., 65) = 65 write(2, "<<< 227 Entering Passive Mode (1"..., 52<<< 227 Entering Pas +sive Mode (XXX,XXX,XXX,XXX,23,212) ) = 52 socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 5 ioctl(5, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff91df0d60) = -1 EINVAL (I +nvalid argument) lseek(5, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) ioctl(5, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff91df0d60) = -1 EINVAL (I +nvalid argument) lseek(5, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) fcntl(5, F_SETFD, FD_CLOEXEC) = 0 connect(5, {sa_family=AF_INET, sin_port=htons(6100), sin_addr=inet_add +r("XXX.XXX.XXX.XXX")}, 16) = 0 stat("test", {st_mode=S_IFREG|0777, st_size=5, ...}) = 0 stat("test", {st_mode=S_IFREG|0777, st_size=5, ...}) = 0
What do you think, is it failing to open the file 'test'? and this fails the "command channel"?

In reply to Re^2: NET:FTPSSL, 555 Can't read command channel socket by ayegorov
in thread NET:FTPSSL, 555 Can't read command channel socket by ayegorov

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.