我从我的Azure虚拟机创建FTP服务器并尝试私有IP地址ftp://10.0.0.5然后当我尝试公共IP地址它说“进入被动模式”时它工作正常
听起来你是在Windows文件资源管理器上以Passive
模式访问Azure VM上的FTP服务器,这需要FTP服务器打开另一个端口,在客户端端口21
上的客户端连接服务器之后再次连接,但FTP服务器无权添加NSG入站规则的新端口。
因此解决方案是在客户端关闭被动模式以强制使用PORT/Active
模式连接FTP服务器。您可以参考现有的SuperUser线程https://superuser.com/questions/249731/ftp-from-windows-explorer-in-active-mode来修复它。
以下是我在Windows 10中的步骤,如下图所示。
图1.单击Search
按钮并键入Internet Options
将其打开
图2.选择Advanced
选项卡并找到Use Passive FTP ...
选项以禁用它
然后,您可以尝试再次访问您的FTP服务器。
如有任何疑虑,请随时告诉我。
更新:要使用FtpWebRequest
将Azure VM上的FTP服务器与PORT/Active
模式连接,您必须在使用之前添加一个代码以在C#中为Passive
禁用FtpWebRequest
模式,如下所示。
ftpWebRequest.UsePassive = false;