目录
文件传送协议 FTP 是因特网上使用最广泛的文件传送协议
工作原理:双链接,数控分离
控制连接
端口:默认使用 TCP21 端口
作用:控制连接在整个 FTP 会话期间一直保持开启状态,用于传送 FTP 命令
特点:始终开放,以保证客户端和服务器之间可以随时交换 FTP 控制信息
数据连接
端口:主动模式下,默认使用 TCP20 端口; 被动模式下,随机端口,端口号由服务器动态指定,并通知给客户端
作用:数据连接仅在需要传输文件(包括上传和下载)或目录列表时建立。一旦文件传输任务完成,数据连接就会被关闭
特点:生命周期较短,只在需要时建立,用完立即关闭
数控分离的优势
- 命令和数据分离:确保文件传输的同时可以接受和执行新的命令
- 提高效率:数据连接传输时建立,传输完成后关闭。这种动态连接的管理方式可以更高效地使用网络资源
- 增强兼容性和配置灵活性:允许服务器和客户端更好地管理网络配置如防火墙和 NAT(网络地址转换)
- 安全性考虑:控制连接可以加密命令传输,安全性更高
- 错误处理和控制:数控分离是两个独立的通道,一个用于命令和控制,另一个用于数据传输,错误处理更加容易
PS:FTP 的数据包也不做加密,跟 Telnet 一样,明文传输
工作模式
主动模式 and 被动模式
主动模式(默认)
客户端从任意非特权端口(端口号大于 1023)发送 FTP 命令到服务器的命令端口,即 21 端口
当服务器收到命令后,它从 20 端口发起一个客户端命令所来自的端口的连接
被动模式
客户端从任意非特权端口连接到服务器的命令端口
然后服务器会在客户端命令中指定的端口上监听数据连接,而不是从服务器的 20 端口发起连接
对比
被动模式更适用于客户端位于防火墙后的情况,因为它允许客户端初始化所有连接,解决了主动模式中服务器无法穿越客户端防火墙的问题
客户机/服务器模式
FTP 服务器:运行 FTP 服务软件,负责响应客户端的请求,管理文件的存储和访问
FTP 客户端:可以是任何用来发起连接和文件传输请求的软件,如命令行工具、Web 浏览器或专用的 FTP 客户端应用
连接方式
FTP 可以通过多种方式进行连接
- 命令行方式连接
- Web 方式连接
- 本地安装 FTP 客户端软件连接
登陆方式
FTP 支持两种基本的登录方式
- 匿名登录:用户通过使用 anonymous 作为用户名进行登录。这种方式允许用户访问公开的文件夹和文件
- 授权账户登录:用户通过有效的用户名和密码才能登陆 FTP 服务器。这种方式提供了更高级别的安全性和访问控制
安全性
传统的 FTP 不加密其传输的数据,包括用户的认证信息(用户名和密码),因此它对窃听特别敏感。因此为了提高安全性,推出以下方案:
FTP over SSL/TLS(FTPS):利用 SSL 或 TLS 提供加密的通道,以保护数据传输的安全
SSH File Transfer Protocol(SFTP):作为 FTP 的替代,通过 SSH 提供加密的传输