Skip to content

Common client connection errors when using server getting started guide #108

@tomharvey

Description

@tomharvey

Moving the commentary from #85 over here.

When I use the Getting started guide to spin up a server, the server isn't accessible from many common clients - particularly these MacOS ones.

Success cases

✅ - FTP CLI (on Ubuntu)
✅ - Firefox (72.0.2 (64-bit) on MacOS)

On Ubuntu 18.04 I've installed aioftp and am running python -m aioftp --memory --family ipv4 to start ther server.

ftp command line

The client outputs

$ ftp 172.16.11.120 2121

Connected to 172.16.11.120.
220 welcome
Name (172.16.11.120:thomasharvey): 
230 anonymous login
Remote system type is UNIX.
Using binary mode to transfer files.

and on the server I see:

aioftp v0.15.0
[17:04:06]: [aioftp.server] serving on 0.0.0.0:2121
[17:06:47]: [aioftp.server] new connection from 172.16.11.120:47164
[17:06:47]: [aioftp.server] 220 welcome
[17:06:48]: [aioftp.server] USER thomasharvey
[17:06:48]: [aioftp.server] 230 anonymous login
[17:06:48]: [aioftp.server] SYST
[17:06:48]: [aioftp.server] 215 UNIX Type: L8

Firefox

I can connect OK, the server shows:

aioftp v0.15.0
[17:15:36]: [aioftp.server] serving on 0.0.0.0:2121
[17:15:52]: [aioftp.server] new connection from 172.16.11.4:63333
[17:15:52]: [aioftp.server] 220 welcome
[17:15:52]: [aioftp.server] USER anonymous
[17:15:52]: [aioftp.server] 230 anonymous login
[17:15:52]: [aioftp.server] SYST
[17:15:52]: [aioftp.server] 215 UNIX Type: L8
[17:15:52]: [aioftp.server] FEAT
[17:15:52]: [aioftp.server] 502 'feat' not implemented
[17:15:52]: [aioftp.server] PWD
[17:15:52]: [aioftp.server] 257 "/"
[17:15:52]: [aioftp.server] TYPE I
[17:15:52]: [aioftp.server] 200 
[17:15:52]: [aioftp.server] PASV
[17:15:52]: [aioftp.server] 227-listen socket created
[17:15:52]: [aioftp.server] 227 (0,0,0,0,172,87)
[17:15:52]: [aioftp.server] CWD /
[17:15:52]: [aioftp.server] 250 
[17:15:52]: [aioftp.server] LIST
[17:15:52]: [aioftp.server] 150 list transfer started
[17:15:52]: [aioftp.server] 226 list transfer done

Failure cases

❌ - FTP CLI (on MacOS)
❌ - Transmit (on MacOS)
❌ - Cyberduck (on MacOS)
❌ - Filezilla (on MacOS)
❌ - Finder (on MacOS)

Transmit

Client log:

**********

Date/Time: 2020-03-03 17:05:57 +0000

1: Transmit 5.6.3 (x86_64) Session Transcript [Version 10.15.2 (Build 19C57)] (03/03/2020, 18:05)
1: LibNcFTP 3.2.3 (July 23, 2009) compiled for UNIX
1: 220: welcome
1: Connected to 172.16.11.120.
1: Cmd: USER anonymous
1: 230: anonymous login
1: Cmd: TYPE A
1: 200: 
1: Logged in to 172.16.11.120 as anonymous.
1: Cmd: SYST
1: 215: UNIX Type: L8
1: Cmd: FEAT
1: 502: 'feat' not implemented
1: Cmd: PWD
1: 257: "/"
1: Cmd: PASV
1: Cannot parse PASV response: listen socket created
1: 227: listen socket created
1:      (0,0,0,0,137,217)
1: Passive mode refused.
1: Connection falling back to port (PORT) mode.
1: Cmd: PORT 172,16,11,4,244,200
1: 502: 'port' not implemented
1: Cmd: PORT 172,16,11,4,244,201
1: 502: 'port' not implemented
1: Cmd: PORT 172,16,11,4,244,202
1: 502: 'port' not implemented
1: Cmd: PORT 172,16,11,4,244,203
1: 502: 'port' not implemented
1: Canceling…
1: Disconnecting from server…
1: Cmd: QUIT
1: 221: bye

And on the server side:

aioftp v0.15.0
[17:05:50]: [aioftp.server] serving on 0.0.0.0:2121
[17:05:57]: [aioftp.server] new connection from 172.16.11.4:62663
[17:05:57]: [aioftp.server] 220 welcome
[17:05:57]: [aioftp.server] USER anonymous
[17:05:57]: [aioftp.server] 230 anonymous login
[17:05:57]: [aioftp.server] TYPE A
[17:05:57]: [aioftp.server] 200 
[17:05:57]: [aioftp.server] SYST
[17:05:57]: [aioftp.server] 215 UNIX Type: L8
[17:05:57]: [aioftp.server] FEAT
[17:05:57]: [aioftp.server] 502 'feat' not implemented
[17:05:57]: [aioftp.server] PWD
[17:05:57]: [aioftp.server] 257 "/"
[17:05:57]: [aioftp.server] PASV
[17:05:57]: [aioftp.server] 227-listen socket created
[17:05:57]: [aioftp.server] 227 (0,0,0,0,137,217)
[17:05:57]: [aioftp.server] PORT 172,16,11,4,244,200
[17:05:57]: [aioftp.server] 502 'port' not implemented
[17:05:57]: [aioftp.server] PORT 172,16,11,4,244,201
[17:05:57]: [aioftp.server] 502 'port' not implemented
[17:05:57]: [aioftp.server] PORT 172,16,11,4,244,202
[17:05:57]: [aioftp.server] 502 'port' not implemented
[17:05:57]: [aioftp.server] PORT 172,16,11,4,244,203
[17:05:57]: [aioftp.server] 502 'port' not implemented
[17:05:57]: [aioftp.server] QUIT
[17:05:57]: [aioftp.server] 221 bye
[17:05:57]: [aioftp.server] closing connection from 172.16.11.4:62663

Cyberduck

Client log:

2020-03-03 18:09:58.858685+0100 PWD
2020-03-03 18:09:58.916890+0100 220 welcome
2020-03-03 18:09:58.917302+0100 USER anonymous
2020-03-03 18:09:58.921265+0100 230 anonymous login
2020-03-03 18:09:58.921354+0100 FEAT
2020-03-03 18:09:58.944287+0100 502 'feat' not implemented
2020-03-03 18:09:58.944396+0100 SYST
2020-03-03 18:09:58.949611+0100 215 UNIX Type: L8
2020-03-03 18:09:58.951729+0100 PWD
2020-03-03 18:09:58.955885+0100 257 "/"
2020-03-03 18:09:58.956282+0100 STAT /
2020-03-03 18:09:58.960571+0100 502 'stat' not implemented
2020-03-03 18:09:58.960861+0100 CWD /
2020-03-03 18:09:58.964190+0100 250
2020-03-03 18:09:58.964260+0100 TYPE A
2020-03-03 18:09:58.968861+0100 200
2020-03-03 18:09:58.968979+0100 PASV
2020-03-03 18:09:58.993767+0100 227-listen socket created
227 (0,0,0,0,139,73)
2020-03-03 18:09:58.994043+0100 CWD /
2020-03-03 18:09:58.998878+0100 250
2020-03-03 18:09:58.999037+0100 TYPE A
2020-03-03 18:09:59.002920+0100 200
2020-03-03 18:09:59.003037+0100 PASV
2020-03-03 18:09:59.007835+0100 227-listen socket already exists
227 (0,0,0,0,139,73)

And on the server side:

aioftp v0.15.0
[17:09:55]: [aioftp.server] serving on 0.0.0.0:2121
[17:09:58]: [aioftp.server] new connection from 172.16.11.4:62881
[17:09:58]: [aioftp.server] 220 welcome
[17:09:58]: [aioftp.server] USER anonymous
[17:09:58]: [aioftp.server] 230 anonymous login
[17:09:58]: [aioftp.server] FEAT
[17:09:58]: [aioftp.server] 502 'feat' not implemented
[17:09:58]: [aioftp.server] SYST
[17:09:58]: [aioftp.server] 215 UNIX Type: L8
[17:09:58]: [aioftp.server] PWD
[17:09:58]: [aioftp.server] 257 "/"
[17:09:58]: [aioftp.server] STAT /
[17:09:58]: [aioftp.server] 502 'stat' not implemented
[17:09:58]: [aioftp.server] CWD /
[17:09:58]: [aioftp.server] 250 
[17:09:58]: [aioftp.server] TYPE A
[17:09:58]: [aioftp.server] 200 
[17:09:58]: [aioftp.server] PASV
[17:09:58]: [aioftp.server] 227-listen socket created
[17:09:58]: [aioftp.server] 227 (0,0,0,0,139,73)
[17:09:58]: [aioftp.server] CWD /
[17:09:58]: [aioftp.server] 250 
[17:09:58]: [aioftp.server] TYPE A
[17:09:58]: [aioftp.server] 200 
[17:09:58]: [aioftp.server] PASV
[17:09:58]: [aioftp.server] 227-listen socket already exists
[17:09:58]: [aioftp.server] 227 (0,0,0,0,139,73)

Finder

The server log output:

aioftp v0.15.0
[17:10:50]: [aioftp.server] serving on 0.0.0.0:2121
[17:11:06]: [aioftp.server] new connection from 172.16.11.4:62907
[17:11:06]: [aioftp.server] new connection from 172.16.11.4:62908
[17:11:06]: [aioftp.server] 220 welcome
[17:11:06]: [aioftp.server] USER anonymous
[17:11:06]: [aioftp.server] 220 welcome
[17:11:06]: [aioftp.server] USER anonymous
[17:11:06]: [aioftp.server] 230 anonymous login
[17:11:06]: [aioftp.server] 230 anonymous login
[17:11:06]: [aioftp.server] SYST
[17:11:06]: [aioftp.server] SYST
[17:11:06]: [aioftp.server] 215 UNIX Type: L8
[17:11:06]: [aioftp.server] 215 UNIX Type: L8
[17:11:06]: [aioftp.server] PWD
[17:11:06]: [aioftp.server] 257 "/"
[17:11:06]: [aioftp.server] PWD
[17:11:06]: [aioftp.server] 257 "/"
[17:11:06]: [aioftp.server] TYPE I
[17:11:06]: [aioftp.server] TYPE I
[17:11:06]: [aioftp.server] 200 
[17:11:06]: [aioftp.server] 200 
[17:11:06]: [aioftp.server] CWD /
[17:11:06]: [aioftp.server] CWD /
[17:11:06]: [aioftp.server] 250 
[17:11:06]: [aioftp.server] 250 
[17:11:06]: [aioftp.server] PASV
[17:11:06]: [aioftp.server] PORT 172,16,11,4,245,189
[17:11:06]: [aioftp.server] 502 'port' not implemented
[17:11:06]: [aioftp.server] 227-listen socket created
[17:11:06]: [aioftp.server] 227 (0,0,0,0,149,49)
[17:11:06]: [aioftp.server] dispatcher caught exception
Traceback (most recent call last):
  File "/home/thomasharvey/.pyenv/versions/aioftp/lib/python3.7/site-packages/aioftp/server.py", line 913, in dispatcher
    result = task.result()
  File "/home/thomasharvey/.pyenv/versions/aioftp/lib/python3.7/site-packages/aioftp/server.py", line 498, in parse_command
    raise ConnectionResetError
ConnectionResetError
[17:11:06]: [aioftp.server] closing connection from 172.16.11.4:62907
[17:11:06]: [aioftp.server] dispatcher caught exception
Traceback (most recent call last):
  File "/home/thomasharvey/.pyenv/versions/aioftp/lib/python3.7/site-packages/aioftp/server.py", line 913, in dispatcher
    result = task.result()
  File "/home/thomasharvey/.pyenv/versions/aioftp/lib/python3.7/site-packages/aioftp/server.py", line 498, in parse_command
    raise ConnectionResetError
ConnectionResetError
[17:11:06]: [aioftp.server] closing connection from 172.16.11.4:62908

And god knows where to look for the finder logs :)

Filezilla

The client reports:

Status:         Connecting to 172.16.11.120:2121...
Status:         Connection established, waiting for welcome message...
Status:         Plain FTP is insecure. Please switch to FTP over TLS.
Status:         Server does not support non-ASCII characters.
Status:         Logged in
Status:         Retrieving directory listing...
Command:    PWD
Response:   257 "/"
Command:    TYPE I
Response:   200 
Command:    PASV
Response:   227-listen socket created
Response:   227 (0,0,0,0,136,203)
Command:    LIST
Error:          The data connection could not be established: ECONNREFUSED - Connection refused by server
Response:   150 list transfer started
Response:   425 Can't open data connection
Error:          Failed to retrieve directory listing

While the server outputs:

[17:17:54]: [aioftp.server] serving on 0.0.0.0:2121
[17:18:46]: [aioftp.server] new connection from 172.16.11.4:63445
[17:18:46]: [aioftp.server] 220 welcome
[17:18:46]: [aioftp.server] USER anonymous
[17:18:46]: [aioftp.server] 230 anonymous login
[17:18:46]: [aioftp.server] SYST
[17:18:46]: [aioftp.server] 215 UNIX Type: L8
[17:18:46]: [aioftp.server] FEAT
[17:18:46]: [aioftp.server] 502 'feat' not implemented
[17:18:46]: [aioftp.server] PWD
[17:18:46]: [aioftp.server] 257 "/"
[17:18:46]: [aioftp.server] TYPE I
[17:18:46]: [aioftp.server] 200 
[17:18:46]: [aioftp.server] PASV
[17:18:46]: [aioftp.server] 227-listen socket created
[17:18:46]: [aioftp.server] 227 (0,0,0,0,136,203)
[17:18:46]: [aioftp.server] LIST
[17:18:46]: [aioftp.server] 150 list transfer started
[17:18:47]: [aioftp.server] 425 Can't open data connection

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions