文件传输协议(即 FTP)比 HTTP(即超文本传输协议)存在的时间要长得多,您现在使用它来连接到 Internet。它甚至比 TCP/IP 协议还要古老,并且在其存在 40 多年的时间里,它已经过修改以适应行业中的新标准。
由于最初的 FTP 规范是在 1971 年编写的,第一个 FTP 客户端完全是命令行程序,因为它们是在操作系统采用 GUI(即图形用户界面)之前开发的。尽管如此,已经有无数为台式机、服务器甚至移动设备设计的 GUI FTP 客户端。本指南包含了解 FTP 及其用法所需的所有信息。我们将指南分为两部分,因此第一部分包含有关 FTP 的所有必要详细信息,另一部分包含与使用相关的详细信息。
什么是FTP
文件传输协议是一种标准网络协议,用于通过计算机网络在客户端和服务器之间传输计算机文件。用户可以通过命令行界面使用 FTP,例如Windows 中的DOS和Linux和 macOS 中的终端。如果这不是您想要的,那么您也可以使用许多在线提供的 FTP 客户端之一,有些甚至是免费的。某些浏览器还允许您使用该协议下载文件。可以使用 FTP 传输任何文件,在某些情况下,它甚至比 HTTP 还要快。例如,这里有一篇关于如何在 Ubuntu 服务器上安装 FTP 服务器的好文章。
要登录 FTP 服务器,您需要输入用户名和密码以及端口号(使用命令行界面登录时)。默认情况下,FTP 协议由端口号 20 和 21 处理。还可以匿名访问 FTP 服务器,我们将在下面的段落中详细说明。
匿名FTP
大多数公共服务器都为您提供了通过匿名连接通过 FTP 登录和下载文件的可能性。这并不意味着您是 100% 匿名的,而是您使用“匿名”作为用户名,在大多数情况下,使用您的电子邮件地址作为密码。您无需拥有现有帐户即可访问 FTP 服务器。
ASCII 和二进制
通过 FTP 文件传输使用两种不同的形式:ASCII 和二进制。ASCII(即美国信息交换标准代码)是一个 7 位字符集,包含 128 个字符。任何基于文本的文件(例如 HTML、.txt、PostScript 文件等)都是 ASCII 文件。
另一方面,我们有二进制文件,它们具有不同的结构并且需要不同的传输类型。其中包括图像、应用程序、算法生成的包(如 .zip)等等。
如今,有种类繁多的 FTP 客户端可用,几乎所有客户端都会根据您选择的文件自动检测传输模式。大多数客户端默认以二进制运行,仅在需要时使用 ASCII。他们这样做是因为用户可以通过二进制方法传输 ASCII 和二进制文件。但是,如果通过 ASCII 传输二进制文件,它将被损坏。上面提到的规则有一个小例外。您必须通过 ASCII 传输 CGI 脚本;否则,它们将无法工作。
浏览器FTP
尽管我们强烈建议使用 FTP 客户端,但有时 Web 浏览器可能就足够了。一旦定向到 FTP 服务器,您必须登录,然后才能浏览服务器并下载文件。请注意,与 FTP 客户端相比,使用 FTP 浏览器提供的功能最少,但安全风险要大得多。
有不同类型的 FTP 服务器和 FTP 客户端,所以这里是最常用的服务器和客户端的列表:
最常用的 FTP 服务器 | 最常用的 FTP 客户端 |
FileZilla 服务器 | FileZilla |
太阳风 | 赢SCP |
服务-U | 智能FTP |
FTP 如何工作
在初始阶段,FTP 连接需要两方在特定网络上建立和通信。用户需要获得向 FTP 服务器提供凭据的权限,但某些公共 FTP 服务器不需要任何凭据来访问文件。
在建立FTP连接的过程中,需要两条不同的通信通道,命令通道和数据通道。命令通道用于启动特定的响应和指令。另一方面,数据通道作为数据分发发生的平台。
授权用户可以使用协议请求在服务器上进行更改以传输文件,并且对于此传输过程,服务器将允许访问。此会话称为活动连接模式,用户请求更改并且服务器授予访问权限。当防火墙保护用户的系统时,主动模式分发可能会遇到问题。因此,该防火墙不允许来自任何外部方的未经授权的会话。
当用户遇到任何问题时使用被动模式,因此用户需要为其建立命令通道和数据通道。设置两个通道后,被动模式请求服务器进行侦听,而不是尝试连接回用户。
如何使用 FTP
有三种不同的方式可以快速建立 FTP 连接,它们是:
命令行 FTP
有一点编程知识可以为用户创造便利,因为有适用于 macOS、Windows 和 Linux 的命令行 FTP。许多开发人员更喜欢这种方法而不是其他方法来在 FTP 中传输文件。
图形 FTP 程序
这种方法可以简化文件传输,因为用户可以轻松地将文件从一个窗口拖放到另一个窗口。在这些程序中,用户必须提供 FTP 主机、用户名和密码才能访问它。
网页浏览器
这种方法很简单,因为用户可以使用 Web 浏览器连接到他们的 FTP 地址。许多用户更喜欢 Web 浏览器方法,因为访问服务器上的大量目录更容易、更有益。但是,它比专用的 FTP 程序慢一点,可靠性也差一些。