我从Azure虚拟机创建FTP服务器并尝试使用专用IP地址ftp://10.0.0.5,然后当我尝试使用公用IP地址时,它说“进入被动模式”即可正常工作
答案 0 :(得分:1)
听起来好像您正在Passive
模式下通过Windows File Explorer访问Azure VM上的FTP服务器,这要求在端口21
上的客户端连接服务器之后,FTP服务器打开另一个端口以再次在客户端进行连接首先,但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
以PORT/Active
模式连接Azure VM上的FTP服务器,您必须添加代码以在C#中为Passive
禁用FtpWebRequest
模式如下使用它。
ftpWebRequest.UsePassive = false;