(S)FTP 代理认证和使用有哪些类型或标准?

(S)FTP 代理认证和使用有哪些类型或标准?

我开发并支持一个使用 (S)FTP 将文件下载到公司服务器的程序。公司客户经常要求我的程序通过代理而不是直接连接。不幸的是,(S)FTP 代理似乎没有标准化,特别是在身份验证方面。

我想找到一些与 (S)FTP 代理交互的标准方法,而无需事先了解供应商。

如果不可能的话,我想汇总一下不同 (S)FTP 代理类型的列表,它们的优缺点(如果我可以选择使用哪种),如何使用它们,实施它们的供应商的示例,更多信息的链接等。

答案1

以下是我目前发现的内容:

  • 检查点登录语法
    • 适用于 FTP
    • 通过 USER 和 PASS 命令向代理传递额外信息来工作。
    • 由于不需要特殊命令,每个支持 FTP 的程序都应该能够使用此方法,即使它没有内置代理概念。您只需更改它使用的用户/密码即可。
    • 用户:ftp_用户名@proxy_用户名@ftp_host
    • 密码:ftp_password@proxy_password
    • 使用者:Bluecoat ProxySG,可能还有其他人。
    • 更多细节:https://kb.bluecoat.com/index?page=content&id=KB2898
  • Raptor 登录语法
    • 适用于 FTP
    • 与 Checkpoint 类似,只是使用 ACCT 传递代理密码。
    • 要求程序理解 ACCT,但最好将密码分开。与 Checkpoint 不同,支持密码中包含 @ 字符。
    • 用户:ftp_用户名@ftp_host 代理用户名
    • 密码:ftp_密码
    • 帐户:代理密码
    • 使用者:Bluecoat ProxySG,可能还有其他人。
    • 更多详细信息:与上述链接相同(超级用户限制我使用 2 个链接)
  • 袜子
    • 适用于任何协议
    • SOCKS 是一种标准化的代理协议。
    • SOCKS 不仅可用于 FTP,也可用于完全不同的协议。
    • 如果程序理解并能使用 SOCKS,这可能是最灵活的解决方案。但是,实现可能更复杂。
    • 更多详细信息:维基百科上的袜子
  • HTTP 连接
    • 适用于 FTP
    • 首先从与代理服务器建立 HTTP 连接开始。通过代理建立连接后,仍使用 TCP,但客户端可以自由切换到其他协议(如 FTP)。
    • 这可能是最简单、最灵活的选择。缺点是程序除了支持 FTP 之外,还必须支持初始 CONNECT 的 HTTP 协议。
    • 更多细节:http://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_Tunneling
  • Filezilla 中引用的其他方法。我还没有找到这些问题的解释。
    • 用户@主机
      • 命令顺序(逗号不是文字):USER %s、PASS %w、USER %u@%h、PASS %p、ACCT %a
    • 地点
      • 命令顺序(逗号不是文字):USER %s、PASS %w、SITE %h、USER %u、PASS %p、ACCT %a
    • 打开
      • 命令顺序(逗号不是文字):USER %s、PASS %w、OPEN %h、USER %u、PASS %p、ACCT %a
  • 供应商列表

相关内容