抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

简单点记,ftp就是文件传输协议

SFTP 借助 ssl 协议加密 ftp

FTPS 借助 ssh 协议加密 ftp

ssl是为http/smtp等加密设计的,ssh是为telnet/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的高端端口


参考

FTP时显示500 Illegal PORT command的解决

关于FTP主动模式与被动模式的一点理解

鸟哥的Linux 私房菜– vsFTPd 文件服务器

评论