Azure 网络 ActiveFTP 问题

Azure Networking ActiveFTP issue

我们最近将服务器迁移到了 Azure。它 运行 是我们的销售点系统,并通过 FTP 将一些文件上传到我们的网络服务器,然后对其进行解析并创建产品。

销售点软件开发人员有一堆 运行 FTP.exe 不幸的是不支持被动文件传输的批处理文件(无论您阅读什么 - 引用 pasv 和文字 pasv don ' 工作)。所以我们一直在使用主动传输,不幸的是这不太适合 Azure。

服务器正在使用端口 10090 - 10100 进行活动连接(我在 NSG 中创建了一个允许 10090-10100 进入的规则)但不幸的是这根本不起作用。

我正在尝试说服开发人员使用 WinSCP 重写,以便我们可以只使用被动传输,但除此之外我一直在寻找另一种解决方案,但到目前为止没有任何效果。

我知道这在 OS 中不是问题,因为我关闭了 Windows 防火墙,但仍然没有成功。

非常感谢对此问题的任何帮助或建议。!

The server is using ports 10090 - 10100 for active connections (I have created a rule in the NSG to allow 10090-10100 in) but unfortunately this isn't working at all.

这是设计使然的行为,因为 VM 的 NSG 入站规则没有关于随机非特权端口的条目。

在主动模式下 FTP 客户端从 一个随机的非特权端口 (N > 1023) 连接到 FTP 服务器的命令端口,端口 21。然后,客户端开始监听N+1端口,向FTP服务器发送FTP命令PORT N+1。然后,服务器将从其本地数据端口(即端口 20)连接回客户端指定的数据端口。

这里出现的连接如下:

为了测试,我在同一 Vnet 中创建了 2 个虚拟机(关闭 windows 防火墙),并在 VM1 上设置 FTP,然后使用 VM2(禁用被动 FTP ) 访问 FTP,它有效。因为 VM1 和 VM2 可以相互连接,并且在同一个 Vnet 中,NSG 不适用于内部网络流量。

因此,在这种情况下,活动 FTP 不起作用,因为服务器无法启动与客户端的连接。也许最安全的方法是被动模式 FTP.