朋友开通了FTP,让我连上去看看,结果我用了几个FTP软件,没有一个可以连接得上的,其中包括:fileZilla,cuteftp,flashfxp和firefox的fireftp插件。
问他是啥原因,他说是主动模式,于是切换到主动模式,但,仍然是一个也连接不上。。。
朋友说他能连接得上,于是截了一个配置图,发现他的flashfxp配置中有一条与我设置的不一样:往服务器发送FEAT指令,他取消了,而我仍然选中。于是去掉这个。就正常了。能够正常连接 FTP 服务器。
再测试了一下,filezilla找不到这个FEAT选项。cuteftp则必须要在全局配置中才有这个:登录到确认功能能后发送FEAT指令。于是去掉勾。然后发现也正常了。。。,最后测试了fireftp,也没有找到设置的地方。
去网上找了找什么是FEAT。最后找到这里FTP--FEAT命令详解,它有详细的介绍:
XML/HTML代码
- 今天在使用FlashFXP进行FTP协议的分析,使用WireShark抓包,竟然发现有FEAT命令,显然在FTP协议RFC959是没有规定这个命令,好像在RFC2389中定义了这个命令,于是仔细思考,这肯定是FlashFXP自己实现的,可以取消这个命令,尤其在当有些FTP服务器不能执行这个命令,而你的客户端又没有取消这个命令,那么往往在FTP服务连接会出现“未知命令”错误信息。修改方法如下:
- FlashFXP:站点管理--选项---勾选 “站点不支持FEAT命令即可”。
- Feat命令简介: feat命令是用来请求FTP服务器列出它的所有的扩展命令与扩展功能的。属于主动模式命令!
- 实例如下:
- [R] Connecting to 192.168.1.77 -> IP=192.168.1.77 PORT=21
- [R] Connected to 192.168.1.77
- [R] 220 Serv-U FTP Server v6.4 for WinSock ready...
- [R] USER ×××××
- [R] 331 User name okay, need password.
- [R] PASS (hidden)
- [R] 230 User logged in, proceed.
- [R] SYST
- [R] 215 UNIX Type: L8
- [R] FEAT
- [R] 211-Extension supported//说明服务器支持扩展命令
- //以下应该就是支持的扩展命令和功能,这点与SMTP协议中一样。
- [R] CLNT
- [R] MDTM
- [R] MDTM YYYYMMDDHHMMSS[+-TZ];filename
- [R] SIZE
- [R] SITE PSWD;EXEC;SET;INDEX;ZONE;CHMOD;MSG
- [R] REST STREAM
- [R] XCRC filename;start;end
- [R] MODE Z
- [R] MLST Type*;Size*;Create;Modify*;Win32.ea*;
- [R] 211 End
- [R] CLNT FlashFXP 3.6.0.1240
- [R] 200 Noted.
- [R] PWD
- [R] 257 "/" is current directory.
- [R] TYPE A
- [R] 200 Type set to A.
- [R] Listening on PORT: 2239, Waiting for connection.
- [R] PORT 192,168,1,177,8,191
- [R] 200 PORT Command successful.
- [R] LIST
- [R] 150 Opening ASCII mode data connection for /bin/ls.
- [R] 226 Transfer complete.
- [R] List Complete: 240 bytes in 0.34 seconds (0.7 KB/s)
- 取消FEAT命令之后,就正常了。
- [R] Connecting to 192.168.1.77 -> IP=192.168.1.77 PORT=21
- [R] Connected to 192.168.1.77
- [R] 220 Serv-U FTP Server v6.4 for WinSock ready...
- [R] USER dz110
- [R] 331 User name okay, need password.
- [R] PASS (hidden)
- [R] 230 User logged in, proceed.
- [R] SYST
- [R] 215 UNIX Type: L8
- [R] PWD
- [R] 257 "/" is current directory.
- [R] TYPE A
- [R] 200 Type set to A.
- [R] Listening on PORT: 2280, Waiting for connection.
- [R] PORT 192,168,1,177,8,232
- [R] 200 PORT Command successful.
- [R] LIST
- [R] 150 Opening ASCII mode data connection for /bin/ls.
- [R] 226 Transfer complete.
- [R] List Complete: 240 bytes in 0.19 seconds (1.2 KB/s)
事实上我仍然没有搞清除这个。但FEAT指令,好象是很多FTP软件默认就发送的。仅做个记录吧