<-
Apache > HTTP 服务器 > 文档 > 版本 2.4 > 模块

Apache 模块 mod_ftp

可用语言:  en 

描述提供对文件传输协议的支持
状态外部
模块标识符ftp_module
源文件mod_ftp.c
兼容性Apache 2.2 及更高版本

摘要

此模块在 Apache HTTP Server 中提供对文件传输协议的支持。它最初由 Covalent Technologies, Inc. 开发,并由他们贡献给 Apache HTTP Server 项目。

Apache 的 FTP 协议模块可以与访问控制模块、mod_ssl 和任何动态内容生成器一起工作,以提供灵活、可扩展和安全的 FTP 服务。

更多详细信息、讨论和示例在 FTP 文档 中提供。

指令

另请参阅

top

FTP 指令

描述在此主机上运行 FTP 服务器
语法FTP on|off
默认值FTP off
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

您必须定义一个 Listen 指令来监听 FTP 请求。

此指令从全局配置文件继承。
top

FTPActiveRange 指令

描述服务器将用于连接到客户端的端口
语法FTPActiveRange min [max]
默认值一个临时的、高编号的端口
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令定义 mod_ftp 在与客户端建立主动连接时将使用的端口或端口范围。它接受一个或两个参数。如果只给出一个参数,服务器将始终使用该端口。如果给出两个参数,服务器将把它们视为要使用的端口范围。

使用足够的范围来满足所有客户端请求!在客户端在 PORTEPRT 请求之后发出数据通道请求,以及服务器连接到客户端之前,源端口可能对任何其他客户端不可用。
Windows 允许任何进程访问特权端口。但是,要在 unix 平台上将 FTPActiveRange 设置为低于 1024,mod_ftp 需要 unix 域套接字,并将创建一个额外的 httpd 进程来为这些绑定、低编号的端口提供服务,以供 httpd 子工作进程使用。

FTPActiveRange 20

强制服务器使用 ftp-data 方案约定

FTPActiveRange 5050

强制服务器使用端口 5050

FTPActiveRange 5050 5080

允许服务器使用 5050 到 5080 之间的任何端口(包括 5050 和 5080)。

top

FTPBannerMessage 指令

描述设置初始登录消息
语法FTPBannerMessage message|file:/path/to/file
默认值
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令设置在初始连接时显示给客户端的消息。这可以是一个字符串,也可以是文件路径。消息可以包含各种元字符

%T本地时间(格式为 Mon Apr 29 20:36:48 2002
%C当前工作目录
%h远程主机
%L本地主机
%E服务器管理员(由 ServerAdmin 给出)
%a远程 IP 地址
%A本地 IP 地址
%u远程用户
%f传输的文件数量
%t下载的总字节数
%x数据传输次数
%b会话的总流量(控制和数据)
top

FTPDataBlockSize 指令

描述控制通道测试之间以字节为单位的块大小
语法FTPDataBlockSize bytes
默认值FTPDataBlockSize 48000
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

当 mod_ftp 通过操作系统传输数据时,无法监控控制通道以获取 ABOR 信号。FTPDataBlockSize 将传输进行分区;在每个块之间,mod_ftp 将查看是否有待处理的控制通道请求,或者套接字是否已准备好发送更多数据,然后继续下一个块。根据预期的带宽,将此值设置为服务器应响应控制通道的合理时间窗口。

top

FTPDirUmask 指令

描述设置创建目录的 umask
语法FTPDirUmask umask
默认值FTPDirUmask 022
上下文服务器配置、虚拟主机、目录、.htaccess
覆盖FileInfo
状态外部
模块mod_ftp

此指令设置目录创建访问的权限掩码。默认值为 022,它赋予所有者完全访问权限,并禁用组和其他用户的写入访问权限。

此指令在 Windows 上不受支持。
top

FTPDocRootEnv 指令

描述根据给定的环境变量设置 DocumentRoot,例如每个用户的 LDAP 属性
语法FTPDocRootEnv envvar
默认值
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令将导致 FTP 使用 envvar 环境变量的值来代替默认的 DocumentRoot,如果环境变量已定义。envvar 变量必须包含完整的、根目录文件路径,例如 Unix 上的 /some/path 或 Windows 上的 d:/some/path

这可以与任何身份验证模块一起使用,该模块根据已登录的用户或其他条件设置环境变量的值(类似于 mod_envmod_setenvif,以在每个用户的基础上更改 FTP 的 Document Root。

此指令从全局配置文件继承。
top

FTPEPSVIgnoreFamily 指令

描述强制 EPSV 忽略请求的 IP 族(IPv4 与 IPv6)
语法FTPEPSVIgnoreFamily On
默认值FTPEPSVIgnoreFamily Off
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令允许客户端的 EPSV 请求绑定到本地地址,忽略客户端请求的 IPv4 与 IPv6,以便解决网络地址转换问题,该问题呈现出明显不同的族。当 FTP 服务器位于防火墙后面时,您可能会发现这很有用。

top

FTPExitMessage 指令

描述设置注销消息
语法FTPExitMessage message|file:/path/to/file
默认值
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令设置在断开连接时显示给客户端的消息。这可以是一个字符串,也可以是文件路径。消息可以包含各种元字符(参见 FTPBannerMessage)。

top

FTPHomeDir 指令

描述设置包含用户主目录的目录的路径
语法FTPHomeDir /directory
默认值
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令定义用户主目录的位置。此目录必须作为绝对路径给出,但实际上是相对于服务器配置的 DocumentRoot。例如,FTPHomeDir /home 将导致 Apache FTP Server 在目录 DocumentRoot/home/username 中查找用户主目录(其中 username 是用户的登录名)。

如果已指定 FTPHomeDir 并且用户的 home 目录不存在,服务器将记录错误,用户将登录到根目录(“/”)。如果您希望自动创建 home 目录,请参见 CreateHomeDirs 选项,该选项适用于 FTPOptions 指令。

此指令从全局配置文件继承。
top

FTPImplicitSSL 指令

描述隐式使用 SSL
语法FTPImplicitSSL on|off
默认值FTPImplicitSSL off
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令确定用户连接时控制连接上的安全性。当设置为 On 时,用户应使用 SSL 连接。当设置为 Off 时,用户必须以不安全的方式连接,然后发出 AUTH 命令以启动安全会话。

此指令从全局配置文件继承。
top

FTPJailUser 指令

描述用户不允许离开其 home 目录
语法FTPJailUser on|off
默认值FTPJailUser off
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令将用户限制在登录时放置在其中的目录树中。用户可以访问其默认目录的任何子目录,但不能访问父目录或任何其他相关目录。

如果未使用 FTPHomeDir 指令,则 FTPJailUser 不会产生任何影响。这些指令的组合对于限制用户可以在文件系统中遍历的位置非常有效。

此指令从全局配置文件继承。
top

FTPLimitDBFile 指令

描述设置登录限制 DB 文件的位置
语法FTPLimitDBFile file-path
默认值FTPLimitDBFile logs/ftplogins
上下文服务器配置
状态外部
模块mod_ftp

为了提供 FTPLimitLoginUserFTPLimitLoginServerFTPLimitLoginIP 功能,mod_ftp 使用一个小的 DBM 文件来存储登录数据。此指令确定该数据库文件的文件名路径。如果使用 FTPLimit 指令,则此指令必须为该 DBM 指定一个文件名,该文件名可由服务器写入。

FTPLimitDBFile logs/ftplogins

top

FTPLimitLoginIP 指令

描述设置每个 IP 地址的并发登录的最大数量
语法
默认值FTPLimitLoginIP 0 (无限制)
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令允许管理员限制来自同一 IP 地址的并发/同时 FTP 登录的总数。例如,如果设置为 10,则不允许超过 10 个来自同一 IP 地址的 FTP 登录。默认值为 0(无限制)。

top

FTPLimitLoginServer 指令

描述设置每个服务器的并发登录最大数量
语法FTPLimitLoginServer 数字
默认值FTPLimitLoginServer 0 (无限制)
上下文服务器配置
状态外部
模块mod_ftp

此指令允许管理员限制并发/同时 FTP 登录的总数。例如,如果设置为 100,则不允许超过 100 个登录到同一虚拟主机的 FTP 登录。默认值为 0(无限制)。

top

FTPLimitLoginUser 指令

描述设置每个用户的并发登录最大数量
语法FTPLimitLoginUser 数字
默认值FTPLimitLoginUser 0 (无限制)
上下文服务器配置
状态外部
模块mod_ftp

此指令允许管理员限制单个 FTP 用户的并发/同时登录数量。例如,如果设置为 3,则不允许单个 FTP 帐户拥有超过 3 个并发登录(包括访客/匿名帐户)。默认值为 0(无限制)。

top

FTPLowPortSock 指令

描述用于传递低编号源端口请求的 Unix 域套接字的文件名前缀
语法FTPLowPortSock 路径名
默认值FTPLowPortSock logs/ftp-lowportd-sock
上下文服务器配置
状态外部
模块mod_ftp

此指令设置用于与 CGI 守护进程通信的套接字的文件名前缀,将附加一个与服务器进程 ID 相对应的扩展名。套接字将使用启动 Apache 的用户的权限创建(通常是 root)。为了维护与 CGI 脚本通信的安全性,重要的是,没有其他用户有权写入套接字所在的目录。

示例

FTPLowPortSock /var/run/cgid.sock

top

FTPMaxLoginAttempts 指令

描述登录尝试次数上限
语法FTPMaxLoginAttempts 尝试次数
默认值FTPMaxLoginAttempts 3
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令控制允许的登录失败尝试次数,超过此次数将断开连接并记录失败的尝试。

top

FTPOptions 指令

描述设置此服务器的选项
语法FTPOptions 选项1 [选项2] ...
默认值
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令设置每个服务器的选项。

当前选项

AllowProxyPASV

此选项允许连接到服务器的数据通道,即使它来自与控制通道客户端 IP 不同的 IP 地址。它影响PASVEPSV数据连接。由于代理 FTP 很少使用,并且被认为可能不安全,因此应谨慎使用此指令。

AllowProxyPORT

此选项允许服务器创建与控制通道客户端 IP 不同的 IP 地址的数据通道连接。它影响PORTEPRT数据连接。由于代理 FTP 很少使用,并且被认为可能不安全,因此应谨慎使用此指令。

CheckMaxClients

当服务器已满时,此选项会拒绝客户端登录。如果未启用,客户端将在接受队列中等待,直到另一个客户端断开连接。

CreateHomeDirs

此选项会导致服务器在由FTPHomeDir指令指定的 location 自动创建一个主目录。如果没有指定FTPHomeDir指令,则此选项无效。

不建议在匿名站点上设置此选项。这是因为为登录到服务器的每个唯一用户(通常由他们的电子邮件地址标识)创建一个目录。

此选项仅在FTPHomeDir目录可供 Apache HTTP Server 的进程所有者访问时才有效,通常在 UNIX 系统上是用户nobody

LISTisNLST

此选项会导致服务器在收到LIST请求或NLST请求时显示相同的输出。与NLSTisLIST不同,输出是文件列表,不包含详细信息。如果将 -l 选项传递给LIST请求,无论是否设置此选项,都将提供详细信息。

NLSTisLIST

此选项会导致服务器在收到LIST请求或NLST请求时显示相同的输出。与NLSTShowDirs一样,此选项用于发送lsdir命令的不同请求的 FTP 客户端。

设置此选项会导致请求多个文件的命令失败,应谨慎使用。

NLSTShowDirs

此选项会导致服务器在收到NLST请求时显示目录和文件。一些 FTP 客户端在用户发出lsdir命令时会发送NLST请求。由于默认响应是仅显示文件,因此用户可能会感到困惑。

设置此选项会导致请求多个文件的命令失败,应谨慎使用。

NoUTF8Feature

默认情况下,mod_ftp 将在响应FEAT命令时宣传UTF8。这确保客户端知道他们可以使用 8 位文件名(而不是 7 位 ASCII),最好使用 UTF-8 字符集。此标志仅在全局上下文中可用,会为所有主机禁用此默认行为,从FEAT服务器响应中省略UTF8

RemoveUserGroup

此选项会导致服务器打印 UID 和 GID,而不是目录列表的用户名称和组名称。它对 Windows 系统没有影响。

RequireSSL

此选项要求客户端在发送任何密码信息之前发出AUTH命令以切换到 SSL。这与隐式 SSL 非常相似,因为它强制客户端使用 SSL 发送密码信息。不同之处在于,使用RequireSSL选项将允许客户端在没有 SSL 的情况下连接,但随后在发送用户名和密码之前发出AUTH SSL 命令。

ShowUnAuthorizedFiles

此选项会导致服务器在收到LIST或类似的NLST命令时显示用户无权检索的文件和用户无权进入的目录(cd将失败)。然后,这些命令将像大多数标准 FTP 服务器一样运行,用户可以看到所有文件和目录的列表,即使他们没有权限访问。

StripHostname

当用户提供USER {user@hostname}命令时,在将“user”呈现给身份验证模块之前,从提供的名称中剥离“@hostname”文本。最常与下面的VirtualHostByUser选项结合使用。

VirtualHostByUser

当用户提供USER {user@hostname}命令时,通过提供的名称的“hostname”文本选择一个VirtualHost。必须适当地配置NameVirtualHost以匹配这些主机。如果没有任何命名的虚拟主机通过其ServerName或任何ServerAlias匹配,则登录将进入第一个匹配的虚拟主机(按 IP),就像 HTTP 处理不匹配的Host:标头一样。

top

FTPPASVaddr 指令

描述设置 PASV 数据通道的明显服务器 IP 地址
语法FTPPASVAddr IP 地址
默认值控制通道连接的服务器实际 IP 地址
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令允许您指定一个不同的IP 地址,该地址将在响应PASV请求时呈现给客户端。它对服务器将监听的 IP 地址没有影响,请改用FTPPASVbindaddr来影响实际数据连接的 IP 地址。

当 FTP 服务器位于防火墙后面时,您可能会发现这很有用。它对EPSV请求没有影响。

此指令从全局配置文件继承。
top

FTPPASVbindaddr 指令

描述设置并绑定数据通道的允许 PASV 服务器 IP 地址
语法FTPPASVbindaddr IP 地址
默认值指定的FTPPASVaddr,或者在没有的情况下,控制通道连接的服务器实际 IP 地址
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令类似于FTPPASVaddr指令,除了 Apache FTP Server 尝试绑定到指定的IP 地址,请注意,任何FTPPASVaddr指令继续覆盖呈现给客户端的地址。

当 FTP 服务器位于防火墙后面时,您可能会发现这很有用。它对EPSV请求没有影响。

此指令从全局配置文件继承。
top

FTPPASVrange 指令

描述设置允许的被动端口范围
语法FTPPASVrange 数字 数字
默认值一个临时的、高编号的端口
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令定义用于所有被动连接的端口范围(从数字数字,包括在内),包括PASVEPSV请求。此指令旨在用于您只想在防火墙上打开特定端口范围的环境中。

使用足够的范围来满足所有客户端请求!在服务器回答PASVEPSV请求的时间和客户端连接到指示的端口的时间之间,该特定端口对任何其他客户端都不可用。
top

FTPReadmeMessage 指令

描述设置每个目录的 Readme 文件
语法FTPReadmeMessage 消息|文件:/路径/到/文件
默认值
上下文服务器配置、虚拟主机、目录、.htaccess
覆盖任何
状态外部
模块mod_ftp

此指令设置在进入新目录时显示给客户端的消息。这可以是字符串,也可以是文件的路径。消息可以包含各种元字符(参见FTPBannerMessage)。

当此指令放置在<VirtualHost>容器中时,README 消息将应用于所有目录。当它用于<Directory>容器或放置在.htaccess文件中时,只有该目录将继承 README 消息。

为目录配置 README 消息也将覆盖任何全局 README 消息。

top

FTPTimeoutData 指令

描述数据传输期间允许的空闲时间
语法FTPTimeoutData 时间
默认值FTPTimeoutData 300
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令设置服务器在数据传输期间等待的时间(以秒为单位)。如果在此时间内没有数据发送到客户端,则数据连接将关闭。

top

FTPTimeoutIdle 指令

描述FTP 会话期间允许的空闲时间
语法FTPTimeoutIdle 时间
默认值FTPTimeoutIdle 600
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令设置客户端发送的命令之间允许的时间(以秒为单位)。如果在此时间内没有收到命令,则用户将断开连接。

top

FTPTimeoutLogin 指令

描述登录时允许的空闲时间
语法FTPTimeoutLogin 时间
默认值FTPTimeoutLogin 60
上下文服务器配置、虚拟主机
状态外部
模块mod_ftp

此指令设置用户向服务器发送用户名的时间(以秒为单位)。如果在此时间内没有收到用户名,则用户将断开连接。

top

FTPUmask 指令

描述设置创建文件的 umask
语法FTPUmask umask
默认值FTPUmask 022
上下文服务器配置、虚拟主机、目录、.htaccess
覆盖FileInfo
状态外部
模块mod_ftp

此指令设置文件创建访问权限掩码。默认值为 022,它赋予所有者完全访问权限,并禁用组和其他用户的写访问权限。

此指令在 Windows 上不受支持。

可用语言:  en 

top

评论

注意
这不是一个问答区。此处发布的评论应针对改进文档或服务器的建议,如果这些建议已被实施或被认为无效/偏离主题,则可能会被我们的版主删除。有关如何管理 Apache HTTP Server 的问题,请咨询我们的 IRC 频道 #httpd(位于 Freenode)或发送至我们的 邮件列表