模式如何设置Linux FTP服务器的主动模式? (linux 设置ftp主动)

FTP(文件传输协议)是常用的文件传输协议,通常用于将文件从一个计算机传输到另一个计算机。在Linux操作系统中,搭建FTP服务器是非常容易的,特别是使用vsftpd(非常安全的FTP守护进程),它是Linux上更流行的FTP服务器之一。当建立FTP服务器时,有两种FTP模式可供选择:主动模式和被动模式。尽管主动和被动模式都可以用来建立FTP连接,但它们的工作方式、优缺点不同,本文着重介绍如何在Linux FTP服务器中设置主动模式。

一、 什么是主动FTP模式?

主动(PORT)FTP模式是FTP服务器和FTP客户端之间的一种标准FTP通信方法。在主动FTP模式中,FTP客户端开启一个随机的未使用端口,并将其通过PORT命令发送到服务器。FTP服务器通过这个端口连接到FTP客户端,并使用另一个随机端口发送数据。在主动FTP模式下,FTP服务器的数据传输端口是一个随机端口。

二、 需要设置的主要主动FTP模式参数

要在Linux FTP服务器中设置主动FTP模式,需要对一些参数进行配置,包括:

1. FTP服务器的主动地址(非本地地址);

2. FTP服务器传输回调的数据端口区间。这些端口必须在服务器上的TCP / IP端口列表中,开放并允许FTP服务器进行监听;

3. 配置FTP服务器的防火墙,以便它可以与FTP客户端建立连接。

三、 如何设置主动FTP模式?

使用vsftpd在Linux FTP服务器中设置主动FTP模式需要执行以下步骤:

1. 在FTP服务器的/etc/vsftpd.conf配置文件中,将如下设置配置为:

“`

#启用FTP主动模式

connect_from_port_20=YES

#传输回调的数据端口区间,这里我们将其设置为1000 – 1023

pasv_min_port=1000

pasv_max_port=1023

“`

2. 防火墙设置。由于FTP服务器使用主动FTP模式时通过FTP客户端连接到FTP服务器的随机端口进行数据传输,因此需要在防火墙中将这些端口开放。具体来说,需要在防火墙规则中将FTP服务器配置为它自己的地址,以便将外部连接与数据传输连接到正确的端口:

“`

# 以iptables为例

iptables -A INPUT -p tcp -s 192.168.1.0/24 –dport 20 -j ACCEPT

iptables -A INPUT -p tcp -s 192.168.1.0/24 –dport 1000:1023 -j ACCEPT

iptables -A OUTPUT -p tcp –sport 20 -j ACCEPT

iptables -A OUTPUT -p tcp –sport 1000:1023 -j ACCEPT

“`

3. 重新启动FTP服务器,以应用新的配置:

“`

systemctl restart vsftpd

“`

请注意,如果您的网络拓扑结构包括网络地址转换(NAT),则需将FTP服务器的公共IP地址配置为/etc/vsftpd.conf文件中的pasv_address参数。这将确保FTP客户端能够正确地与FTP服务器进行数据传输。

四、 主动FTP模式的优缺点

1. 主动FTP模式要求FTP服务器和FTP客户端之间建立两个连接:命令传输连接和数据传输连接;

2. 由于FTP服务器在客户端的计算机上开启一个新的数据传输连接,因此需要将传输回调的数据端口区间放到防火墙规则中。这是因为FTP服务器的动态数据传输端口通常是非常大的,因此更好将其限制为一个较小的端口范围内;

3. 主动FTP模式适用于那些在FTP服务器上设置防火墙规则时更为舒适的管理员,因为在主动FTP模式中,当启用FTP客户端时,必须在FTP服务器的防火墙规则中预先打开传输回调的数据端口(在使用被动FTP模式时不需要)。

在很多情况下,主动FTP模式可能是唯一可用的FTP模式。在这些情况下,这种FTP模式的工作需要服务器用户和管理员在防火墙和FTP服务器的配置中进行一些额外的工作。使用主动FTP模式时,与被动FTP模式不同,在禁用FTP服务时,在防火墙规则中设置正确的限制并不重要。


数据运维技术 » 模式如何设置Linux FTP服务器的主动模式? (linux 设置ftp主动)