0

I run vsftpd 3.0.3 / armv7l / Debian 9.11 / Kernel 4.14.133+

Some paths have Greek characters.

In file /etc/vsftpd.conf there is a line utf8_filesystem=YES but, also, this is the default behavior.

In client's charset autodetection mode:

Chrome, Opera, Total Commander understand that paths served with UTF-8 characters.

Firefox, FileZilla, Double Commander don't understand that paths served with UTF-8 characters and display 2 characters per Greek character. If I force charset to UTF-8, all work fine.

I am not sure that this erroneous behavior is client-side. I believe(!) that non-erroneous clients, just have a fail-safe mechanism on charsets.

It is a minor problem, but client-users other than me, can be frustrated.

Bellow is the Filezilla log, of connection:

Status: Connecting to 192.168.1.2:21...
Status: Connecting to 192.168.1.2:21...
Status: Connection established, waiting for welcome message...
Response: 220 (vsFTPd 3.0.3)
Command: AUTH TLS
Response: 530 Please login with USER and PASS.
Command: AUTH SSL
Response: 530 Please login with USER and PASS.
Status: Insecure server, it does not support FTP over TLS.
Command: USER videos
Response: 331 Please specify the password.
Command: PASS 
Response: 230 Login successful.
Command: SYST
Response: 215 UNIX Type: L8
Command: FEAT
Response: 211-Features:
Response:  EPRT
Response:  EPSV
Response:  MDTM
Response:  PASV
Response:  REST STREAM
Response:  SIZE
Response:  TVFS
Response: 211 End
Status: Server does not support non-ASCII characters.
Status: Logged in
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is the current directory
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (192,168,1,2,204,166).
Command: LIST
Response: 150 Here comes the directory listing.
Response: 226 Directory send OK.
Command: PASV
Response: 227 Entering Passive Mode (192,168,1,2,73,251).
Command: LIST -a
Response: 150 Here comes the directory listing.
Response: 226 Directory send OK.
Status: Directory listing of "/" successful

And an image with, how appear file paths:

enter image description here

1

FileZilla needs the server to return UTF8 in the response to the FEAT command to use UTF-8 automatically.

Your server does not return UTF8. But what is strange is that vsftpd 3.0.3 should return UTF8 unconditionally. This is vsftpd 3.0.3 code for sending a response to the FEAT command:

void
handle_feat(struct vsf_session* p_sess)
{
  vsf_cmdio_write_hyphen(p_sess, FTP_FEAT, "Features:");
  if (tunable_ssl_enable)
  {
    if (tunable_sslv2 || tunable_sslv3)
    {
      vsf_cmdio_write_raw(p_sess, " AUTH SSL\r\n");
    }
    if (tunable_tlsv1)
    {
      vsf_cmdio_write_raw(p_sess, " AUTH TLS\r\n");
    }
  }
  if (tunable_port_enable)
  {
    vsf_cmdio_write_raw(p_sess, " EPRT\r\n");
  }
  if (tunable_pasv_enable)
  {
    vsf_cmdio_write_raw(p_sess, " EPSV\r\n");
  }
  vsf_cmdio_write_raw(p_sess, " MDTM\r\n");
  if (tunable_pasv_enable)
  {
    vsf_cmdio_write_raw(p_sess, " PASV\r\n");
  }
  if (tunable_ssl_enable)
  {
    vsf_cmdio_write_raw(p_sess, " PBSZ\r\n");
    vsf_cmdio_write_raw(p_sess, " PROT\r\n");
  }
  vsf_cmdio_write_raw(p_sess, " REST STREAM\r\n");
  vsf_cmdio_write_raw(p_sess, " SIZE\r\n");
  vsf_cmdio_write_raw(p_sess, " TVFS\r\n");
  vsf_cmdio_write_raw(p_sess, " UTF8\r\n");
  vsf_cmdio_write(p_sess, FTP_FEAT, "End");
}

That does not match the log you have posted. You must have some custom build of vsftpd or there's some proxy/firewall on the way that strips the UTF8.


Anyway, you can configure FileZilla to use UTF-8 always. On Site Manager, go to Charset tab and select Force UTF-8.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.