通过 FTPS 连接时,EPSV 模式在 curl 中总是失败
EPSV mode always fails in curl when connecting over FTPS
我正在尝试使用 curl 将文件上传到同时支持 FTP 和 FTPS 的网络服务器。
curl -vvv --ftp-ssl-reqd --user "username:password" ftp://ftps.website.com -T /path/to/a/file
此命令需要很长时间,因为 curl 首先尝试使用 EPSV
代码,然后根据日志
失败
> EPSV
* Connect data stream passively
* ftp_perform ends with SECONDARY: 0
< 229 Entering Extended Passive Mode (|||50107|)
* Trying 123.456.789.123...
* TCP_NODELAY set
* Connecting to 123.456.789.123 (123.456.789.123) port 50107
* Connection failed
* connect to 123.456.789.123 port 21 failed: Operation timed out
* Failed to connect to ftps.website.com port 21: Operation timed out
* Failed EPSV attempt. Disabling EPSV
> PASV
禁用 EPSV
后,使用普通 PASV
模式传输成功。
通过普通的、未加密的 FTP 连接到同一个网络服务器并使用 EPSV
工作正常。丹尼尔·斯坦伯格 writes 那
This is particularly complicated if you enable FTPS (encrypted FTP) as then the new port number is invisible to middle-boxes such as firewalls.
但他没有提供任何解决方案。
如何正确修复 FTPS 除了 只是“从不为 FTPS 使用 EPSV”?
只使用 --disable-epsv
怎么样?引用我的话并不是说 EPSV 比 PASV 更复杂。由于上述原因,在 FTPS 情况下,两者都同样复杂。
EPSV 通常完全没有问题。该命令在 FTPS 上与在 FTP 上一样正常工作。您的问题是由于您的特定服务器和周围的网络
我正在尝试使用 curl 将文件上传到同时支持 FTP 和 FTPS 的网络服务器。
curl -vvv --ftp-ssl-reqd --user "username:password" ftp://ftps.website.com -T /path/to/a/file
此命令需要很长时间,因为 curl 首先尝试使用 EPSV
代码,然后根据日志
> EPSV
* Connect data stream passively
* ftp_perform ends with SECONDARY: 0
< 229 Entering Extended Passive Mode (|||50107|)
* Trying 123.456.789.123...
* TCP_NODELAY set
* Connecting to 123.456.789.123 (123.456.789.123) port 50107
* Connection failed
* connect to 123.456.789.123 port 21 failed: Operation timed out
* Failed to connect to ftps.website.com port 21: Operation timed out
* Failed EPSV attempt. Disabling EPSV
> PASV
禁用 EPSV
后,使用普通 PASV
模式传输成功。
通过普通的、未加密的 FTP 连接到同一个网络服务器并使用 EPSV
工作正常。丹尼尔·斯坦伯格 writes 那
This is particularly complicated if you enable FTPS (encrypted FTP) as then the new port number is invisible to middle-boxes such as firewalls.
但他没有提供任何解决方案。
如何正确修复 FTPS 除了 只是“从不为 FTPS 使用 EPSV”?
只使用 --disable-epsv
怎么样?引用我的话并不是说 EPSV 比 PASV 更复杂。由于上述原因,在 FTPS 情况下,两者都同样复杂。
EPSV 通常完全没有问题。该命令在 FTPS 上与在 FTP 上一样正常工作。您的问题是由于您的特定服务器和周围的网络