ftp中遇到的Entering Extended Passive Mode问题

在sels10机器上登入ftp输入用户名和密码之后再ls发现出现如下问题Entering Extended Passive Mode

 

ftp> ls
229 Entering Extended Passive Mode (|||51374|)

 

要解决这种情况,ctrl+c后输入epsv4 off回车即可。

 

ftp> epsv4 off
EPSV/EPRT on IPv4 off.
ftp> ls
227 Entering Passive Mode (9,44,51,77,147,2).
150 Opening ASCII mode data connection for file list
drwxr-xr-x   2 root     system        256 Jul 28 22:21 dev

 

起初在网上搜说是passvie mode的问题,输入passive之后结果如下:


ftp> passive
Passive mode: off; fallback to active mode: off.
ftp> ls
200 EPRT command successful

 

发现仍然不能解决该问题

故障原因: 目前在suse linux上缺省的ftp client基本上都是lukemftp,连接后出现不能列目录,表现为PASV/PORT模式都无法连接
229 Entering Extended Passive Mode (|||40862|)
经过检查发现是 EPSV4 命令的兼容性所致:
epsv4
Toggle the use of the extended EPSV and EPRT commands on IPv4 connections;
first try EPSV / EPRT, and then PASV / PORT. This is enabled by default.
If an extended command fails then this option will be temporarily disabled
for the duration of the current connection, or until epsv4 is executed again.
有些较老的ftp server对EPSV / EPRT 支持存在问题,因此需要执行epsv4关闭这两个命令,
使用老命令 PASV / PORT 访问

 

搜了下ftp主动和被动模式的区别:

 
他们的区别就是在连接上服务器之后创建数据通道的时候:

PORT 模式是建立从服务器高端口连到客户端20端口数据连接
PASV 模式是建立客户高端口连到服务器返回的数据端口的数据连接

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器从20端口向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端向服务器的空闲端口发送连接请求,建立一条数据链路来传送数据。

FTP仅仅提供了建立在IPv4上进行数据通信的能力,它基于网络地址是32位这一假设。但是,当IPv6出现以后,地址就比32位长许多了。原来对FTP进行的扩展在多协议环境中有时会失败。针对IPv6对FTP再次进行扩展,两个FTP命令PORT和PASV通过扩展后,我们称它们为EPRT和EPSV。

你可能感兴趣的:(ftp中遇到的Entering Extended Passive Mode问题)