Apache HTTP Server 版本 2.4
可用语言: en
描述 | 提供对文件传输协议的支持 |
---|---|
状态 | 外部 |
模块标识符 | ftp_module |
源文件 | mod_ftp.c |
兼容性 | Apache 2.2 及更高版本 |
此模块在 Apache HTTP Server 中提供对文件传输协议的支持。它最初由 Covalent Technologies, Inc. 开发,并由他们贡献给 Apache HTTP Server 项目。
Apache 的 FTP 协议模块可以与访问控制模块、mod_ssl 和任何动态内容生成器一起工作,以提供灵活、可扩展和安全的 FTP 服务。
更多详细信息、讨论和示例在 FTP 文档 中提供。
描述 | 在此主机上运行 FTP 服务器 |
---|---|
语法 | FTP on|off |
默认值 | FTP off |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
您必须定义一个 Listen
指令来监听 FTP 请求。
描述 | 服务器将用于连接到客户端的端口 |
---|---|
语法 | FTPActiveRange min [max] |
默认值 | 一个临时的、高编号的端口 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令定义 mod_ftp 在与客户端建立主动连接时将使用的端口或端口范围。它接受一个或两个参数。如果只给出一个参数,服务器将始终使用该端口。如果给出两个参数,服务器将把它们视为要使用的端口范围。
PORT
或 EPRT
请求之后发出数据通道请求,以及服务器连接到客户端之前,源端口可能对任何其他客户端不可用。FTPActiveRange
设置为低于 1024,mod_ftp 需要 unix 域套接字,并将创建一个额外的 httpd 进程来为这些绑定、低编号的端口提供服务,以供 httpd 子工作进程使用。FTPActiveRange 20
强制服务器使用 ftp-data 方案约定
FTPActiveRange 5050
强制服务器使用端口 5050
FTPActiveRange 5050 5080
允许服务器使用 5050 到 5080 之间的任何端口(包括 5050 和 5080)。
描述 | 设置初始登录消息 |
---|---|
语法 | 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 | 会话的总流量(控制和数据) |
描述 | 控制通道测试之间以字节为单位的块大小 |
---|---|
语法 | FTPDataBlockSize bytes |
默认值 | FTPDataBlockSize 48000 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
当 mod_ftp 通过操作系统传输数据时,无法监控控制通道以获取 ABOR
信号。FTPDataBlockSize 将传输进行分区;在每个块之间,mod_ftp 将查看是否有待处理的控制通道请求,或者套接字是否已准备好发送更多数据,然后继续下一个块。根据预期的带宽,将此值设置为服务器应响应控制通道的合理时间窗口。
描述 | 设置创建目录的 umask |
---|---|
语法 | FTPDirUmask umask |
默认值 | FTPDirUmask 022 |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
覆盖 | FileInfo |
状态 | 外部 |
模块 | mod_ftp |
此指令设置目录创建访问的权限掩码。默认值为 022,它赋予所有者完全访问权限,并禁用组和其他用户的写入访问权限。
描述 | 根据给定的环境变量设置 DocumentRoot,例如每个用户的 LDAP 属性 |
---|---|
语法 | FTPDocRootEnv envvar |
默认值 | 无 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令将导致 FTP 使用 envvar
环境变量的值来代替默认的 DocumentRoot
,如果环境变量已定义。envvar
变量必须包含完整的、根目录文件路径,例如 Unix 上的 /some/path
或 Windows 上的 d:/some/path
。
这可以与任何身份验证模块一起使用,该模块根据已登录的用户或其他条件设置环境变量的值(类似于 mod_env
或 mod_setenvif
,以在每个用户的基础上更改 FTP 的 Document Root。
描述 | 强制 EPSV 忽略请求的 IP 族(IPv4 与 IPv6) |
---|---|
语法 | FTPEPSVIgnoreFamily On |
默认值 | FTPEPSVIgnoreFamily Off |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令允许客户端的 EPSV
请求绑定到本地地址,忽略客户端请求的 IPv4 与 IPv6,以便解决网络地址转换问题,该问题呈现出明显不同的族。当 FTP 服务器位于防火墙后面时,您可能会发现这很有用。
描述 | 设置注销消息 |
---|---|
语法 | FTPExitMessage message|file:/path/to/file |
默认值 | 无 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令设置在断开连接时显示给客户端的消息。这可以是一个字符串,也可以是文件路径。消息可以包含各种元字符(参见 FTPBannerMessage
)。
描述 | 设置包含用户主目录的目录的路径 |
---|---|
语法 | FTPHomeDir /directory |
默认值 | 无 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令定义用户主目录的位置。此目录必须作为绝对路径给出,但实际上是相对于服务器配置的 DocumentRoot
。例如,FTPHomeDir /home
将导致 Apache FTP Server 在目录 DocumentRoot
/home/
username
中查找用户主目录(其中 username 是用户的登录名)。
如果已指定 FTPHomeDir
并且用户的 home 目录不存在,服务器将记录错误,用户将登录到根目录(“/
”)。如果您希望自动创建 home 目录,请参见 CreateHomeDirs
选项,该选项适用于 FTPOptions
指令。
描述 | 隐式使用 SSL |
---|---|
语法 | FTPImplicitSSL on|off |
默认值 | FTPImplicitSSL off |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令确定用户连接时控制连接上的安全性。当设置为 On
时,用户应使用 SSL 连接。当设置为 Off
时,用户必须以不安全的方式连接,然后发出 AUTH
命令以启动安全会话。
描述 | 用户不允许离开其 home 目录 |
---|---|
语法 | FTPJailUser on|off |
默认值 | FTPJailUser off |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令将用户限制在登录时放置在其中的目录树中。用户可以访问其默认目录的任何子目录,但不能访问父目录或任何其他相关目录。
如果未使用 FTPHomeDir
指令,则 FTPJailUser
不会产生任何影响。这些指令的组合对于限制用户可以在文件系统中遍历的位置非常有效。
描述 | 设置登录限制 DB 文件的位置 |
---|---|
语法 | FTPLimitDBFile file-path |
默认值 | FTPLimitDBFile logs/ftplogins |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_ftp |
为了提供 FTPLimitLoginUser
、FTPLimitLoginServer
和 FTPLimitLoginIP
功能,mod_ftp 使用一个小的 DBM 文件来存储登录数据。此指令确定该数据库文件的文件名路径。如果使用 FTPLimit
指令,则此指令必须为该 DBM 指定一个文件名,该文件名可由服务器写入。
FTPLimitDBFile logs/ftplogins
描述 | 设置每个 IP 地址的并发登录的最大数量 |
---|---|
语法 |
|
默认值 | FTPLimitLoginIP 0 (无限制) |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令允许管理员限制来自同一 IP 地址的并发/同时 FTP 登录的总数。例如,如果设置为 10,则不允许超过 10 个来自同一 IP 地址的 FTP 登录。默认值为 0(无限制)。
描述 | 设置每个服务器的并发登录最大数量 |
---|---|
语法 | FTPLimitLoginServer 数字 |
默认值 | FTPLimitLoginServer 0 (无限制) |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_ftp |
此指令允许管理员限制并发/同时 FTP 登录的总数。例如,如果设置为 100,则不允许超过 100 个登录到同一虚拟主机的 FTP 登录。默认值为 0(无限制)。
描述 | 设置每个用户的并发登录最大数量 |
---|---|
语法 | FTPLimitLoginUser 数字 |
默认值 | FTPLimitLoginUser 0 (无限制) |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_ftp |
此指令允许管理员限制单个 FTP 用户的并发/同时登录数量。例如,如果设置为 3,则不允许单个 FTP 帐户拥有超过 3 个并发登录(包括访客/匿名帐户)。默认值为 0(无限制)。
描述 | 用于传递低编号源端口请求的 Unix 域套接字的文件名前缀 |
---|---|
语法 | FTPLowPortSock 路径名 |
默认值 | FTPLowPortSock logs/ftp-lowportd-sock |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_ftp |
此指令设置用于与 CGI 守护进程通信的套接字的文件名前缀,将附加一个与服务器进程 ID 相对应的扩展名。套接字将使用启动 Apache 的用户的权限创建(通常是 root)。为了维护与 CGI 脚本通信的安全性,重要的是,没有其他用户有权写入套接字所在的目录。
FTPLowPortSock /var/run/cgid.sock
描述 | 登录尝试次数上限 |
---|---|
语法 | FTPMaxLoginAttempts 尝试次数 |
默认值 | FTPMaxLoginAttempts 3 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令控制允许的登录失败尝试次数,超过此次数将断开连接并记录失败的尝试。
描述 | 设置此服务器的选项 |
---|---|
语法 | FTPOptions 选项1 [选项2] ... |
默认值 | 无 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令设置每个服务器的选项。
当前选项
AllowProxyPASV
此选项允许连接到服务器的数据通道,即使它来自与控制通道客户端 IP 不同的 IP 地址。它影响PASV
和EPSV
数据连接。由于代理 FTP 很少使用,并且被认为可能不安全,因此应谨慎使用此指令。
AllowProxyPORT
此选项允许服务器创建与控制通道客户端 IP 不同的 IP 地址的数据通道连接。它影响PORT
和EPRT
数据连接。由于代理 FTP 很少使用,并且被认为可能不安全,因此应谨慎使用此指令。
CheckMaxClients
当服务器已满时,此选项会拒绝客户端登录。如果未启用,客户端将在接受队列中等待,直到另一个客户端断开连接。
CreateHomeDirs
此选项会导致服务器在由FTPHomeDir
指令指定的 location 自动创建一个主目录。如果没有指定FTPHomeDir
指令,则此选项无效。
不建议在匿名站点上设置此选项。这是因为为登录到服务器的每个唯一用户(通常由他们的电子邮件地址标识)创建一个目录。
此选项仅在FTPHomeDir
目录可供 Apache HTTP Server 的进程所有者访问时才有效,通常在 UNIX 系统上是用户nobody
。
LISTisNLST
此选项会导致服务器在收到LIST
请求或NLST
请求时显示相同的输出。与NLSTisLIST
不同,输出是文件列表,不包含详细信息。如果将 -l 选项传递给LIST
请求,无论是否设置此选项,都将提供详细信息。
NLSTisLIST
此选项会导致服务器在收到LIST
请求或NLST
请求时显示相同的输出。与NLSTShowDirs
一样,此选项用于发送ls
或dir
命令的不同请求的 FTP 客户端。
设置此选项会导致请求多个文件的命令失败,应谨慎使用。
NLSTShowDirs
此选项会导致服务器在收到NLST
请求时显示目录和文件。一些 FTP 客户端在用户发出ls
或dir
命令时会发送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:
标头一样。
描述 | 设置 PASV 数据通道的明显服务器 IP 地址 |
---|---|
语法 | FTPPASVAddr IP 地址 |
默认值 | 控制通道连接的服务器实际 IP 地址 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令允许您指定一个不同的IP 地址,该地址将在响应PASV
请求时呈现给客户端。它对服务器将监听的 IP 地址没有影响,请改用FTPPASVbindaddr
来影响实际数据连接的 IP 地址。
当 FTP 服务器位于防火墙后面时,您可能会发现这很有用。它对EPSV
请求没有影响。
描述 | 设置并绑定数据通道的允许 PASV 服务器 IP 地址 |
---|---|
语法 | FTPPASVbindaddr IP 地址 |
默认值 | 指定的 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令类似于FTPPASVaddr
指令,除了 Apache FTP Server 尝试绑定到指定的IP 地址,请注意,任何FTPPASVaddr
指令继续覆盖呈现给客户端的地址。
当 FTP 服务器位于防火墙后面时,您可能会发现这很有用。它对EPSV
请求没有影响。
描述 | 设置允许的被动端口范围 |
---|---|
语法 | FTPPASVrange 数字 数字 |
默认值 | 一个临时的、高编号的端口 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令定义用于所有被动连接的端口范围(从数字到数字,包括在内),包括PASV
和EPSV
请求。此指令旨在用于您只想在防火墙上打开特定端口范围的环境中。
PASV
或EPSV
请求的时间和客户端连接到指示的端口的时间之间,该特定端口对任何其他客户端都不可用。描述 | 设置每个目录的 Readme 文件 |
---|---|
语法 | FTPReadmeMessage 消息|文件:/路径/到/文件 |
默认值 | 无 |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
覆盖 | 任何 |
状态 | 外部 |
模块 | mod_ftp |
此指令设置在进入新目录时显示给客户端的消息。这可以是字符串,也可以是文件的路径。消息可以包含各种元字符(参见FTPBannerMessage
)。
当此指令放置在<VirtualHost>
容器中时,README 消息将应用于所有目录。当它用于<Directory>
容器或放置在.htaccess
文件中时,只有该目录将继承 README 消息。
为目录配置 README 消息也将覆盖任何全局 README 消息。
描述 | 数据传输期间允许的空闲时间 |
---|---|
语法 | FTPTimeoutData 时间 |
默认值 | FTPTimeoutData 300 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令设置服务器在数据传输期间等待的时间(以秒为单位)。如果在此时间内没有数据发送到客户端,则数据连接将关闭。
描述 | FTP 会话期间允许的空闲时间 |
---|---|
语法 | FTPTimeoutIdle 时间 |
默认值 | FTPTimeoutIdle 600 |
上下文 | 服务器配置、虚拟主机 |
状态 | 外部 |
模块 | mod_ftp |
此指令设置客户端发送的命令之间允许的时间(以秒为单位)。如果在此时间内没有收到命令,则用户将断开连接。
可用语言: en