通过 TLS 的显式 FTP 失败:警告:ftp_fput(): data_accept: SSL/TLS 握手失败
Explicit FTP over TLS fails : Warning: ftp_fput(): data_accept: SSL/TLS handshake failed
我正在尝试连接到 FTP 服务器,该服务器需要通过 TLS 显式 FTP,所有 FTP 客户端都可以正常工作,但我无法在其中工作PHP:
<?php
$ftp = ftp_ssl_connect($host, 21);
$login = ftp_login($ftp, $user, $pass);
ftp_pasv($ftp, true);
$fp = fopen('php://temp', 'r+');
fwrite($fp, 'Salam');
rewind($fp);
ftp_fput($ftp, '/file.txt', $fp);
服务器配置正确,使用 filezilla、lftp、ftptest.net
等客户端没有问题
PHP版本:7.4.3
OpenSSL:OpenSSL 1.1.1f 2020 年 3 月 31 日
经过几天的尝试,我发现 FTP 服务器正在使用端口 21
但数据传输的端口范围不同,这解释了为什么连接和登录有效,但是列表和 upload/download 没有。并且这些端口在防火墙中被阻止。
我要求托管服务提供商允许在这些端口上进行传出连接,问题已解决。
我正在尝试连接到 FTP 服务器,该服务器需要通过 TLS 显式 FTP,所有 FTP 客户端都可以正常工作,但我无法在其中工作PHP:
<?php
$ftp = ftp_ssl_connect($host, 21);
$login = ftp_login($ftp, $user, $pass);
ftp_pasv($ftp, true);
$fp = fopen('php://temp', 'r+');
fwrite($fp, 'Salam');
rewind($fp);
ftp_fput($ftp, '/file.txt', $fp);
服务器配置正确,使用 filezilla、lftp、ftptest.net
等客户端没有问题PHP版本:7.4.3
OpenSSL:OpenSSL 1.1.1f 2020 年 3 月 31 日
经过几天的尝试,我发现 FTP 服务器正在使用端口 21
但数据传输的端口范围不同,这解释了为什么连接和登录有效,但是列表和 upload/download 没有。并且这些端口在防火墙中被阻止。
我要求托管服务提供商允许在这些端口上进行传出连接,问题已解决。