服务器到服务器的 FTP 传输

您可以通过更改系统注册表中的 EnableDataConnTo3rdIPEnablePasvConnFrom3rdIP 项来配置 IIS 以允许服务器到服务器的 FTP 传输。默认情况下,禁用 EnablePasvConnFrom3rdIP 注册表项来防止对 FTP 服务的恶意攻击。虽然下面列出了有关配置服务器到服务器传输的详细内容,但是 Microsoft 不推荐在连接到 Internet 上的基于 IIS 的 FTP 服务器上启用注册表项 EnablePasvConnFrom3rdIP

要点 要点 使用注册表编辑器不当可能导致需要重新安装操作系统的严重问题。因为注册表编辑器会跳过标准安全保护(禁止您输入存在冲突或者有可能降低性能或损坏系统的设置),所以在更改注册表时一定要格外小心。Microsoft 无法保证解决由于错误使用注册表编辑器而引起的问题。有关如何编辑注册表的信息,请参阅注册表编辑器帮助中的更改项和值主题。

下面的过程列出了从 Server1 (IP 地址:192.168.0.10)到 Server2 (IP 地址:192.168.1.20)传输二进制文件(称为 MyFile.xls)所需的步骤,该传输使用 Workstation1 上的命令行 FTP 客户端。要运行该示例,您必须具有 Server2 上授予的写权限。您还须拥有两台运行基于 IIS 的 FTP 服务的计算机。

初始化数据通道(该示例中的 Server1)的服务器必须在注册表中设置成下面的值:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSFTPSVC\Parameters\EnableDataConnTo3rdIP=1

Server2 必须在注册表中设置成下面的值:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSFTPSVC\Parameters\EnablePasvConnFrom3rdIP=1

在普通的客户端/服务器 FTP 传输中,用户仅负责将友好的命令输入到服务器;客户端将自动响应。当执行服务器到服务器 FTP 传输时,另一台服务器作为客户端。因此,用户负责将所有的 FTP 命令发送到两台服务器(以 RFC959 格式,前面是关键字“literal”)。

在 FTP 服务器之间传输二进制文件

  1. 使用命令行 FTP 客户端连接到 Server1。(该连接将被称为 Client1)。
  2. 使用命令行 FTP 客户端连接到 Server2。(该连接将被称为 Client2)。
  3. 在 Client2 中发出以下命令:literal pasv
    计算机响应:227 正在输入被动模式 (192,168,1,20,15,61)。
    请注意,15,61 代表了端口号的低和高命令字节(在该例中是端口 3901),这是由各个 FTP 连接随机指派的。因此,该字符串的最后两位数将是不同的。
  4. 在 Client1 中发出以下命令:literal port 192,168,1,20,15,61
    计算机响应:200 端口命令成功。
    使用步骤 3 中返回的 IP 和端口字符串。
  5. 在 Client1 和 Client2 中发出以下命令:literal type i
    计算机响应:200。
  6. 输入 set to I
  7. 在 Client1 中发出下面的命令:literal retr myfile.bin
    计算机响应:125 数据连接已经打开;传输开始。
  8. 在 Client2 中发出以下命令:literal stor myfile.bin
    计算机响应:正在为 myfile.bin 打开 BINARY 模式数据连接。
  9. 继续在 Client2 上发出 literal stat 命令,直到返回一个 211 响应表明“没有列出的数据连接”。
    该 211 响应消息有几行,同时指明传输不再进行。
  10. 若要将文件从 Server2 传输到 Server1,请从 Client1 发出 literal retr 命令,同时从 Client2 发出 literal stor 命令。

文件传输替换

如果您关心 FTP 安全,或者如果网络安全设备(如防火墙)阻止了服务器到服务器数据传输,请考虑使用文件传输替换,例如使用 WebDAV 进行 Web 创作。WebDAV 是 HTTP 文件传输认可的标准。

相关主题

© 1997-2003 Microsoft Corporation。保留所有权利