FTP连接时出现“227 Entering Passive Mode” 的解决方法
前段时间在本地的win7搭建了一个简单的FTP服务器用来测试在linux服务器上生成的批量报文,最初搭好测试时没问题,但今天再次测试从linux上ftp到本地win7主机上的ftp-server时确老是报如下错误

自己反复检查了一下ftp-server端的配置,一切OK呀!最后发现FTP原来有两种工作模式,主动和被动模式,我是在被动模式下出现连接失败,之后我在成功连接到远程主机后使用passive关闭client端的被动方式,结果正常传输数据了。下面罗列了FTP的两种工作模式。

FTP有两种工作模式,PORT方式和PASV方式,中文意思为主动式和被动式 ,详细介绍如下:

主动 FTP :
    命令连接:客户端 >1024 端口 → 服务器 21 端口
    数据连接:客户端 >1024 端口 ← 服务器 20 端口

被动 FTP :
    命令连接:客户端 >1024 端口 → 服务器 21 端口
    数据连接:客户端 >1024 端口 ← 服务器 >1024 端口

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链 路来传送数据。

由于我的本地FTP服务器在内网,只是从外网映射了两个端口(20,21),所以无法使用PASV方式,解决此问题的办法也很简单,关闭客户端的PASV方式,强制其用PORT方式访问服务器,登录FTP服务器后用passive命令关闭客户端的PASV方式,如下:

ftp> passive
  Passive mode off.

ftp> passive (再次运行命令可打开)

Passive mode on.

相关文章

  1. FTP连接时出现“227 Entering Passive Mode” 的解决方法
  2. Linux expect问题集:227 Entering Passive Mode (10,41,49,10,218,187). ftp: connect: Connection timed out
  3. 227 Entering Passive Mode 的解决办法!
  4. 【解决 FTP】windows访问Linux的vsftpd(FTP服务器)问题200 Switching to ASCII mode,227 Entering Passive Mode
  5. vsftp问题“227 Entering Passive Mode”
  6. FTP Server 随机的链接异常 - Passive mode
  7. linux系统访问win2003 FTP连接时出现“227 Entering Passive Mode” 的解决方法
  8. ftp的主动模式active mode和被动模式 passive mode的配置和区别
  9. vsftp登录报错:227 Entering Passive Mode
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐