# FTP时显示500 Illegal PORT command的解决

- URL: https://wuming.si/blog/1173/
- Author: Aaron
- Published: 2016-04-27
- Language: zh-Hans
- Categories: Technology
- Originally published at: https://blog.wo.ai/archives/1173

使用EditPlus打开FTP服务器上的文件时，发现连接不了 在windows的dos窗口用FTP命令去连时，可以登录，但使用ls等命令时，出现：  
500 Illegal PORT command.  
425 Use PORT or PASV first.  
根据提示是被动模式的问题 在EditPlus的FTP设定高级选项中，选上passive FTP mode即可而dos窗口的FTP命令则无法设置为被动模式 FTP主/被动模式的原理  
————————————————————————————————————————————————–  
FTP是File Transfer Protocol（文件传输协议）的缩写，用来在两台计算机之间互相传送文件相比于HTTP，FTP协议要复杂得多复杂的原因，是因为FTP协议要用到两个TCP连接，一个是命令链路，用来在FTP客户端与服务器之间传递命令；另一个是数据链路，用来上传或下载数据 FTP协议有两种工作方式：PORT方式和PASV方式，中文意思为主动式和被动式 PORT（主动）方式的连接过程是：客户端向服务器的FTP端口（默认是21）发送连接请求，服务器接受连接，建立一条命令链路当需要传送数据时，客户端在命令链路上用PORT命令告诉服务器：我打开了XXXX端口，你过来连接我于是服务器从20端口向客户端的XXXX端口发送连接请求，建立一条数据链路来传送数据 PASV（被动）方式的连接过程是：客户端向服务器的FTP端口（默认是21）发送连接请求，服务器接受连接，建立一条命令链路当需要传送数据时，服务器在命令链路上用PASV命令告诉客户端：我打开了XXXX端口，你过来连接我于是客户端向服务器的XXXX端口发送连接请求，建立一条数据链路来传送数据  
概括：  
——————————————————————————–  
主动模式：服务器向客户端敲门，然后客户端开门  
被动模式：客户端向服务器敲门，然后服务器开门 所以，如果你是如果通过代理上网的话，就不能用主动模式，因为服务器敲的是上网代理服务器的门，而不是敲客户端的门  
而且有时候，客户端也不是轻易就开门的，因为有防火墙阻挡，除非客户端开放大于1024的高端端口 ——————————————————————————–  
要用主动模式来下载，请您把下载工具的被动模式（PASV）都不要打勾，用主动模式来下载就OK了,如果在出错，那就被动主动相互转换一下 常见的FTP客户端软件的PASV方式的关闭方法 大部分FTP客户端默认使用PASV方式,PASV模式的意式是被动模式 在大部分FTP客户端的设置里，常见到的字眼都是PASV或被动模式 IE： 工具 -> Internet选项 -> 高级 -> 使用被动FTP（需要IE6.0以上才支持） CuteFTP： Edit -> Setting -> Connection -> Firewall -> PASV Mode  
或 File -> Site Manager，在左边选中站点 -> Edit -> Use PASV mode FlashGet： 工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> PASV模式 FlashFXP： 选项 -> 参数选择 -> 代理/防火墙/标识 -> 使用被动模式  
或 站点管理 -> 对应站点 -> 选项 -> 使用被动模式  
或 快速连接 -> 切换 -> 使用被动模式 LeapFTP： Option ->Preferences -> General->Proxy->Use Pasv Mode
