被动模式下的 FTP:EHOSTUNREACH - 没有到主机的路由

Arn*_*lle 5 ftp filezilla proftpd

我有一个 FTP 服务器,运行了大约一个月,没有出现任何问题。

今天,我无法使用 filezilla 连接到它,我收到以下消息:

无法建立数据连接:EHOSTUNREACH - 没有到主机的路由

我在Google/SO上搜索发现这可能是TLS问题。但是,我可以使用控制台连接到 FTP 服务器:

$ ftp
ftp> open mymachine.mycompany.com
Connected to mymachine.mycompany.com
220 Bienvenue sur le serveur FTP mymachine.mycompany.com.
Name (mymachine.mycompany.com:adenoyelle): mylogin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    2 502      502         20480 Jun 05 11:51 Ga
drwxr-xr-x    7 502      502          4096 Apr 21 15:41 Bu
drwxr-xr-x    7 502      502          4096 Jun 03 16:26 Zo
226 Directory send OK.
ftp> 
Run Code Online (Sandbox Code Playgroud)

原因可能是什么?

编辑:我发现启用“主动”模式可以解决 Filezilla 中的问题,但我需要它在被动模式下工作

编辑:这是 Filezilla 一侧的完整跟踪:

Status: Connecting to 10.196.***.***
Status: Connection established, waiting for welcome message...
Response:   220 Bienvenue sur le serveur FTP mymachine.mycompany.com.
Command:    USER mylogin
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:    UTF8
Response:   211 End
Command:    OPTS UTF8 ON
Response:   200 Always in UTF8 mode.
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/home/mylogin"
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PASV
Response:   227 Entering Passive Mode (10,196,165,224,189,253).
Command:    LIST
Error:  The data connection could not be established: EHOSTUNREACH - No route to host
Run Code Online (Sandbox Code Playgroud)

r_a*_*kog 1

这两者之间有一个区别,在命令行上您使用PORT而 Filezilla 使用PASV更改所用连接的方向。PORT意味着您的计算机打开一个端口并等待来自服务器的连接。PASV表示服务器打开一个端口并等待客户端连接。

是否有可能服务器有防火墙阻止传入连接,也许防火墙很愚蠢,无法自动检测结果PASV并允许相应的端口。也许它以前曾工作过,因为服务器选择的端口在防火墙允许的范围内。