★什么是 FTP?
FTP(File Transfer Protocol 文件传输协议)是一种应用层协议,用于在特定计算机之间传输文件。
与 Telnet/SSH 一样,它允许你在登录另一台计算机后传输文件。
通过 FTP,可以向 FTP 服务器上传文件,也可以从 FTP 服务器下载文件。
使用 FTP 时,登录时交换的用户名和密码信息是未加密传输的。
因此,如果要使用安全的 FTP 通信,请使用 FTPS(FTP over SSL/TLS)或 SFTP(SSH FTP)。
★FTP 中的两个 TCP 连接
FTP 通信使用两个 TCP 连接:一个用于控制,一个用于数据传输。
控制用的连接称为控制连接,数据传输连接称为数据连接、
控制连接用于登录的用户名和密码信息、文件传输方法等。
数据连接用于发送和接收传输的数据。
当 FTP 客户端访问 FTP 服务器时,使用目标端口号 20 进行数据连接
当 FTP 客户端访问 FTP 服务器时,使用目标端口号 21 进行控制连接。
这是 FTP 主动模式下的内容;
在被动模式下,数据连接的端口号是20,但会分配一个随机端口号,并将该信息传递给 FTP 客户端。
★FTP- 主动模式
要从 PC 进行 FTP,请在命令提示符下输入 IP 地址,如 "ftp 192.168.0.5",或
输入域名,如 "ftp www.example.com"。 或者使用 FTP 客户端软件。
建立 TCP 连接后,系统会要求你输入用户名和密码。 验证成功后,开始传输文件
传输文件时,使用什么模式(ASCII 模式或二进制模式),在数据连接过程中与 FTP 客户端交换使用哪个端口号等信息后,就会请求传输文件
★FTP 的主动和被动模式
FTP 的主动模式和被动模式的区别在于数据连接中由哪一方发起连接请求。
主动模式由 FTP 服务器发起,被动模式由 FTP 客户端发起。
无论是哪种模式,控制连接都会从客户端发出连接请求。
在主动模式下,FTP 客户端会通知 FTP 服务器它在控制连接交换中使用的端口号。
同样,在被动模式下,FTP 客户端会将 FTP 服务器在控制连接交换中使用的随机端口号通知 FTP 服务器,以便从 FTP 服务器发起连接请求。
如果 FTP 服务器位于外部(如互联网),防火墙的安全策略可能不允许从外部发起连接请求。
在这种情况下,请使用被动模式从防火墙内部发起连接请求。