php - 尝试从仅支持主动模式的 EC2 访问 FTP

标签 php codeigniter amazon-ec2 ftp

我正在尝试从我的 Amazon EC2 实例 (centos 7) 使用事件模式访问外部 FTP(FTP 仅支持事件)

我尝试使用 PHP ftp 命令(ftp_connect)或 Codeigniter 3.0 ftp 命令都将被动模式设置为 false,但连接后无法检索文件,所以我猜这不是亚马逊安全规则问题,因为它确实连接,但没有连接t 检索文件

当我没有选择时,任何帮助都会被适当......

最佳答案

FTP 是一种旧协议(protocol),它使用多个端口发送和接收数据。它对 AWS 中大量使用的 NAT 也不太友好。

在主动模式下,服务器会发起与客户端的连接(这对于大多数协议(protocol)来说并不常见),这也是 NAT 可能导致问题的原因。使用 AWS,您应该拥有 1:1 NAT 映射,这样只要尝试连接到公共(public) IP NAT 就不会出现问题。

但是,需要确保向 FTP 服务器打开正确的端口。看起来至少是 20-21,范围可能大于 1024。

关于php - 尝试从仅支持主动模式的 EC2 访问 FTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36016508/

相关文章:

php - UTF-8贯穿始终

PHP lastInsertId() - 返回前一条记录编号

mysql - 我应该使用 Amazon EC2 还是 S3 设置我的网站?以及如何将其连接到数据库?

amazon-web-services - 在 AWS 上托管时无法访问 Go 服务器

amazon-ec2 - 恢复终止的 EC2 实例

javascript - 如何在更改下拉列表时更改 href url?

PHP 错误 : Code always returning the same value

php - 代码点火器 : Resetting the form values

javascript - 我的 jquery select 有什么问题

php - ExtJS 网格存储 - 通过 CodeIgniter 将信息写入 "Save"/"Update"上的 MySQL