HTTP 代理后面的 FTP URL 可以使用以下两种安排之一:

模式curl 发送什么
HTTP FTP 网关要求代理获取 FTP 资源的 HTTP 请求。
CONNECT 隧道隧道请求,随后通过已接受的连接传输原生 FTP 协议字节。

此命令使用网关安排:

curl --proxy http://203.0.113.10:8080 \
  ftp://files.example.com/report.txt

替换文档端点和文件目标位置。正如 curl 的 HTTP 代理文档 所解释,在该模式下 curl 与代理以 HTTP 通信。成功获取文件并不能证明每一项 FTP 特定操作。

当服务旨在通过 CONNECT 承载原生 FTP 时,请添加 --proxytunnel 。它必须允许必要的目标连接。FTP 具有 独立的控制连接和数据连接,因此被动地址/端口、CONNECT 规则和服务器配置可能在登录成功后导致传输失败。

保留失败的阶段:CONNECT 被拒绝、FTP 登录失败或被动数据失败。把另一个目标编码进 USER/PASS 的服务专用网关使用其自己的登录约定;这些既不是普通 HTTP 代理凭据,也不是 SOCKS 协商。

使用文档记载的代理模式和文件服务的安全配置。仅靠隧道并不会加密明文 FTP 凭据或文件数据。

相关文章