FTP的特点是什么?如何解决防火墙的问题

FTP的特点是什么?如何解决防火墙的问题

什么是FTP端口?FTP 端口对于在客户端和服务器之间建立连接是必不可少的。确保您的 FTP 侦听正确的端口,否则您可能会发现连接到服务器具有挑战性。FTP 是用于通过网络传输数据的常用协议。主协议支持文本、pdf、媒体等使用传输文件的传输、上传、下载,但不保证安全,由SFTP协议保证。

FTP的特点是什么?如何解决防火墙的问题-美联科技

每当您使用文件传输协议 (FTP) 时,您必须知道其中涉及哪些元素以及它们如何工作,以便更好地理解。最关键的元素之一是 FTP 端口。使用正确的端口很重要,因为成功的文件传输取决于打开的端口。 端口建立连接并启动客户端和服务器之间的传输。首先,您必须了解 FTP 端口是什么,为什么它是必要的,它的功能,不同的 FTP 模式,配置 FTP 端口以及其他详细信息。

什么是 FTP 端口?

FTP代表 文件传输协议,允许用户通过网络在设备之间交换信息。要建立连接,您需要 FTP 软件工具并启动传输。FTP 传输仅使用特定端口完成。默认情况下,FTP 连接使用端口号 21。此外,您可以更改此默认设置并选择您选择的 FTP 端口。但要进行此更改,您需要管理员访问权限。 每当您开始使用 FTP 进行通信时,您将需要两个不同的端口,如下所述。

  • 当用户在 FTP 客户端提供凭据时,它将建立 FTP 连接并打开 FTP 服务器的 FTP 控制端口(默认情况下,该端口为 21)。
  • 客户端与服务器建立第二个连接,这是 FTP 服务器对 FTP 客户端的响应。此连接将通过端口 20 进行。这是实际传输数据的地方。

设备连接到远程设备很有帮助。端口是必需的,因此不会与网络内的其他传输发生冲突,从而消除了网络拥塞的情况。FTP 协议可以轻松处理批量数据传输。该协议使用 TCP 通道工作。要连接到此通道,您需要一个对服务器开放的端口号。如果您想使用自定义的 FTP 端口号,您只能为您的操作系统使用有限数量的端口。 要了解 FTP 端口的工作原理和配置方式,您必须具备 FTP 及其功能、 FTP 客户端和服务器的基本知识。让我们开始吧。

FTP的特点

FTP 是一种应用层协议,可实现快速数据传输。它具有以下功能。

  • 数据表示:它支持数据表示形式——ASCII(7 位)、EBCDIC(8 位)和 8 位二进制数据。默认情况下,它使用 ASCII 文件进行文件传输。它用 7 位 ASCII 编码每个字符。该文件首先被转换为 ASCII 表示,然后由接收器转换回来。对于传输二进制文件,默认格式是图像文件。该文件将作为一个连续的比特字节发送,无需编码。
  • 文件组织和数据结构:您可以使用 FTP 传输结构化和非结构化文件。 非结构化文件是一串字节,并由 EOF(文件结束)标记。这种文件对应的数据结构称为文件结构。结构化文件包含由 EDR(记录结束)分隔的记录列表。这种文件的数据结构称为记录结构。另一个结构化文件包含具有页码和页头的页面。您可以随机或按顺序访问这些页面。数据结构为页结构。
  • 传输方式:FTP 使用三种不同的传输模式来传输文件。
  • 流模式:默认情况下,FTP 使用流模式,因为数据以字节流的形式传输。 TCP 将数据分解成段。它不需要 EOF 来指定数据的关闭。但是,如果将文件划分为记录,则使用 E​​OR(1 字节)和 EOF(1 字节)字符。
  • 块模式:它将数据传送到从 FTP 到 TCP 的块中,每个块都有一个 3 字节的标头。第一个字节称为块描述符,而其他两个字节以字节为单位定义块大小。
  • 压缩模式:如果要传输的文件很大,可以压缩后传输。游程编码使用压缩方法。对于文本文件,压缩时会删除空格,而对于二进制文件,则会压缩空字符。
  • 错误控制:由于 FTP 使用 TCP 传输文件,因此没有额外的错误恢复机制要求。
  • 访问控制:FTP 通过通过用户名和密码放置适当的登录机制来确保访问控制。
  • FTP操作:FTP 工作在客户端-服务器架构上,并使用两个 TCP 连接来完成传输。一个连接用于交换控制信号,另一个用于实际数据传输。
  • 控制连接:它在两个设备之间传输控制信号。两端的控制过程都使用这种连接。此连接使用 FTP 端口号 21。此连接将在整个 FTP 会话期间保持连接。一次只能传输一行命令——客户端和服务器的控制过程都使用传输 NVT 语法。控制进程使用协议解释器将本地代码翻译成 NVT 语法,反之亦然。
  • 数据连接:它指定实际的数据传输。在客户端和服务器的数据传输过程 (DTP) 之间建立连接。它使用 FTP 端口 20。与控制连接不同,数据连接在每次传输后打开和关闭。数据传输是基于对发送命令的控制来完成的。传输文件时,您需要指定要发送的文件类型。

文件传输时,可能会发生以下情况之一。

  • 将文件从服务器复制到客户端称为检索文件。为此,使用 RETR 命令。
  • 将文件从客户端复制到服务器称为存储文件。它使用 STOR 命令。
  • 将文件名列表从服务器发送到客户端。它使用 LLST 命令。

什么是匿名 FTP?

要通过 FTP 客户端建立连接,您必须向远程服务器提供授权的用户名和密码。一些站点具有每个人都可以访问的文件,从而启用匿名 FTP。访问此类文件,并且用户不必提供凭据。否则,用户可以作为匿名用户名登录,guest 作为密码登录。

什么是 FTP 服务器?

FTP 服务器与 Web 服务器类似。FTP 服务器处理文件的分发。每当用户单击链接以从 Internet 下载内容时,链接将重定向到 FTP 而不是 HTTP。有些文件对 FTP 服务器上的所有人开放,而有些文件则可供具有授权访问权限的特定用户使用。FTP服务器分为匿名服务器和非匿名服务器,以分离这些文件和用户。

  • 匿名服务器:在大多数情况下,FTP 站点允许匿名 FTP,并且您不必提供访问文件的密码。您需要提供匿名用户名并输入您的电子邮件地址作为密码。
  • 非匿名服务器:对于非匿名服务器,您必须使用正确的密码以自己的身份登录。

什么是 FTP 客户端?

FTP 使用 TCP 来处理所有的通信和共享数据。FTP 在客户端/服务器模型上工作,其中一台设备是客户端,另一台充当服务器。所有恶魔的FTP进程都运行在每个人都可以访问的服务器上,并使服务器能够处理所有事务。要使用 FTP,您需要在系统上使用 FTP 客户端软件并建立与服务器设备的连接。要连接到 FTP 服务器,您需要在 FTP 客户端软件上提供用户名和密码。这将在两个设备之间打开一个命令链接,允许您发送命令、消息和其他数据。然后,您将能够根据您的权限在服务器上执行任何任务,因为每个用户都无权执行管理任务。

什么是主动模式和被动模式?

您可以通过两种方式开发客户端和服务器之间的交互。这取决于您用于建立连接以传输数据的方法。两种模式是主动和被动 FTP 操作模式。

在主动模式的情况下,服务器自己发起与客户端的连接,而在被动模式的情况下,客户端发起连接。FTP 协议使用两种类型的连接:控制和数据传输。

在数据传输连接的情况下,您可以看到客户端的主动和被动模式。但是,控制连接对于通信也是必不可少的,因为服务器通过控制连接接收命令。

主动模式和被动模式之间的显着区别在于谁发起连接和非匿名服务器来分离这些文件和用户。在主动模式的情况下,客户端与服务器建立控制连接,同时服务器建立连接以传输数据。但是,在被动模式的情况下,客户端启动数据和控制连接。此外,数据传输到的端口也不同。

如何建立 FTP 主动模式

它从建立控制连接开始。为此,将在客户端上创建一个临时端口,范围从 1024 到 65535,用于控制和数据连接。客户端将请求发送到服务器以启动连接。在非活动模式下,将发生以下步骤。

  • 首先,客户端将请求发送到端口为 21 的服务器。
  • 服务器将响应新创建的临时客户端端口。
  • 之后,客户端确认传入的连接。
  • 客户端将发送指定详细信息的 FTP PORT 命令,例如哪种模式(在这种情况下是活动的)、 IP 地址和端口号。
  • 服务器将确认传入的命令。
  • 客户端将告诉服务器执行特定任务。
  • 然后,服务器使用端口号 20 创建数据连接。
  • 客户端将响应来自服务器的请求。
  • 确认连接后,服务器将允许来自客户端的数据。

如何建立 FTP 被动模式

这个过程与主动模式操作完全不同。以下是使用被动模式所遵循的步骤。

  • 客户端使用端口号 21 从其 1024 - 65535 之间的临时端口向服务器发送请求。
  • 服务器将向临时客户端端口发送响应。
  • 然后客户端确认传入的连接。
  • 客户端发送指定使用被动 FTP 模式的 PASV 命令。
  • 服务器确认并发送其 IP 地址和端口号以启动数据连接。
  • 客户端使用数据传输端口向服务器发出的端口发送建立连接的请求。
  • 然后服务器确认传入的连接。
  • 客户端创建一个连接。
  • 客户端告诉服务器何时传输数据。

更改 FTP 以使用不同的端口号

要将 FTP 更改为使用默认端口号以外的其他端口号,您可以按照以下步骤操作。

根据以下示例,您可以将标准 FTP 端口 21 替换为 10022。

1.在 /etc/services 文件中更改 FTP 的端口号,如下所示。

ftp 10022/tcp # File Transfer [Control]

ftp 10022/udp # File Transfer [Control]

2.使用以下命令创建 SRCsubsvr ODM 文件的备份。

# cd /etc/objrepos#

cp SRCsubsvr SRCsubsvr.backup

3.更改 ODM 类 SRCsubsvr

  • 导出 ODMDIR:

# export ODMDIR=/etc/objrepos

4.从 SRCsubsvr ODM 类中提取 FTP 条目:

# odmget -q sub_type="ftp" SRCsubsvr > /tmp/ftp.odm.out

5.现在,从 SRCsubsvr ODM 类中删除当前的 FTP 条目:

# odmdelete -q sub_type="ftp" -o SRCsubsvr

预期输出:

0518-307 odmdelete: 1 objects deleted.

  • 现在,更改 /tmp/FTP.odm.out 中 FTP 节的 sub_code 字段
  • 这是 ftp.odm.out 中的初始条目:

SRCsubsvr:

sub_type = "ftp"

subsysname = "inetd"

sub_code = 21

Change sub_code to the new port (for example, port 10022):

SRCsubsvr:sub_type = "ftp"

subsysname = "inetd"

sub_code = 10022

  • 现在,保存文件更改。
  • 将新的 FTP 条目添加到 SRCsubsvr ODM 类:

# odmadd /tmp/FTP.odm.out

  • 验证条目是否存在,并显示新的端口号:

# odmget -q sub_type="ftp" SRCsubsvr

  • 刷新inetd重启ftpd

# refresh -s inetd

  • 现在,您需要验证新的 FTP 端口是否处于监听状态:

# netstat -an | grep 10022

  • 如果端口不处于监听状态,则必须重启inetd:

# stopsrc -s inetd

# startsrc -s inetd

  • 测试与端口 21 和 10022 的 FTP 连接

解决防火墙问题

更改 FTP 使用的默认端口号后,您可能会收到以下错误。您可以对 防火墙 设置进行必要的更改,以使该过程顺利运行。

由于 FTP 数据端口的动态特性,您在配置防火墙时可能会遇到困难。在主动模式的情况下,实际问题发生在客户端。如果防火墙的设置是断开非内部发起的连接,则服务器无法建立数据连接。因此,您必须正确指定客户端端口并创建允许的规则以使防火墙正常工作。

但在被动模式的情况下,问题出在服务器端。此外,您可以在服务器设置中指定被动 FTP 端口范围内的范围并为其创建规则。您可以按照以下步骤完成此操作。

打开IIS管理器,点击Start Page下的Server名称,双击FTP Firewall Support,将1025-65535的范围提供给Data Channel Port Range。

转到 FTP 站点 -> 选择 FTP 防火墙支持,并提供您的外部 IP 地址。确保在配置防火墙时对这些端口范围进行网络地址转换 (NAT)。

结论

FTP 端口对于在客户端和服务器之间建立连接是必不可少的。确保您的 FTP 侦听正确的端口,否则您可能会发现连接到服务器具有挑战性。FTP 建立了两种不同的连接,一种用于传输命令,另一种用于传输实际数据。数据连接使用 FTP 端口 20。默认情况下,FTP 使用端口号 21 来指定控制连接。您可以更改默认端口以确保安全或避免端口 20 和 21 上的网络拥塞。FTP 是一种必要的协议,可以在网络上顺畅地传输任何数据。我们已经提到了一些命令来帮助您更改默认端口 21。如果遇到任何问题,您可以进行上述防火墙设置以避免拒绝连接错误。

客户经理