-1

我有 redhat linux Azure VM 服务器,我试图通过它从托管在其他 Windows Azure VM 上的 FTP 服务器获取目录列表。我可以使用我的本地计算机和 filezilla 通过 FTP 连接并获取目录列表,但是在使用 ls 命令时,通过我的 redhat linux azure VM 服务器进行主动和被动连接都出现错误。

活动连接错误 : ftp: 接受: 资源暂时不可用 425 Can't open data connection for transfer of "/" 226 ABOR 命令成功

被动错误: 227进入被动模式(10,1,0,10,160,87)ftp:连接:连接超时

它看起来更像是防火墙问题,但我需要更改什么样的设置。我还在入站规则中添加了 FTP 端口 21 和数据连接端口 20。

在我的 firewalld 规则中列出了 FTP 服务。甚至还添加了所有被动连接端口。我也禁用了firewalld,然后尝试但没有成功。

我需要从我的 PHP 页面访问这个 FTP 以获取上传到 FTP 文件夹的所有文件。

谢谢

4

1 回答 1

1

根据你对你的问题,我做了一个测试并成功了。我的 FTP 服务器是 Azure Linux VM。我的客户端是本地 Windows 机器。主要步骤如下:

1.在你的 Linux 虚拟机上安装 vsftp。

sudo apt-get install vsftpd

2.编辑vsftp配置文件。

sudo vi /etc/vsftpd.conf

3.添加这些配置。(我选择3000和3001端口作为数据传输端口,地址是你VM的公共IP)

pasv_enable=YES
pasv_min_port=3000
pasv_max_port=3001
pasv_addr_resolve=YES

4.重启服务。

sudo service vsftpd restart

5.去Azure门户添加NSG入站规则,打开20,21和数据传输端口。

我的 NSG 规则

6.使用cmd进行测试。

测试OK

于 2017-08-25T13:04:16.527 回答