FTP 被动模式(Filezilla)Windows Server 2012 偶尔出现“426 连接已关闭;中止传输”

FTP 被动模式(Filezilla)Windows Server 2012 偶尔出现“426 连接已关闭;中止传输”

大家,早安,

我在 MS Azure 托管的 WIN 2012 R2 服务器上托管 FileZilla FTP 服务器(被动模式)。

FTP 传输通常运行良好 - 每天都会运行几次 FTP 上传和检索。

我已经在 Azure 门户/端打开了相对较大范围的端口(端点)以允许被动模式。

偶尔(平均每隔一天一次)我会看到如下的 FTP 传输问题:

8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file1

8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071048

8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file2

8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071048

8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> MDTM dev_updates/file3

8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 213 20160728071050

8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> CWD dev_updates/Infrastructure/folder

8/8/2016 9:09:59 AM - USER_FILEZILLA (62.154.Y.X)> 250 CWD successful. "dev_updates/Infrastructure/folder" is current directory.

8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> PASV

8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> 227 Entering Passive Mode (104,40,Y,X,234,235)

8/8/2016 9:10:00 AM - USER_FILEZILLA (62.154.Y.X)> 426 Connection closed; aborted transfer of ""

8/8/2016 9:10:01 AM - USER_FILEZILLA (62.154.Y.X)> disconnected.

8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> Connected on port 21, sending welcome message...

8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220-FileZilla Server 0.9.57 beta

8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220-written by Tim Kosse ([email protected])

8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 220 Please visit https://filezilla-project.org/

8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> USER USER_FILEZILLA

8/8/2016 9:10:01 AM - (not logged in) (62.154.Y.X)> 331 Password required for 

如上所述,每天都会发生几次 FTP 传输(自动),并扫描分配给 FileZilla FTP 服务器的 140 多个端口范围(以被动模式运行)。

我在 Azure 中托管的 VM 上运行了 Wireshark 捕获;从 Wireshark 捕获中我可以看到,“426 连接关闭”事件实际上与 Azure 中的 VM 发出的 RST 匹配,并发送回发出 PASV 命令的客户端(即在上面的例子中,FTP 服务器使用端口 234,235 -> 60139 回复客户端 PASV 命令;客户端尝试打开到端口 60139 的数据通道以开始传输 -> FTP 服务器立即回复(根据 Wireshark 捕获在 MS 内)向客户端发出 RST)。

我想到 FTP 服务器端的一些临时端口分配问题 -> 因此我减少了允许的动态操作系统临时端口范围,使其不与 FTP 被动端口范围重叠 - 使用

netsh int ipv4 set dynamicport tcp start=49152 num=10000

此外,我通过命令明确将端口范围保留添加到 netsh 堆栈

netsh int ip add excludeportrange protocol=tcp startport=60000 numberofports=141 store=persistent

但该问题仍然偶尔发生。

我阅读了此网站以及 MS Azure technet 会话中关于 Azure 如何监控端点状态(作为 LB 集的一部分时)的大量技术讨论,但这并不适用于我的情况,因为在保留 FTP 被动端口范围内的随机端口上进行的 FTP 被动传输(检索和上传)通常运行良好。

如果需要,我可以提供更多详细信息 - 同时,我将非常感激有关服务器和客户端故障排除/调查的更多建议(非常确定问题与网络或网络配置无关)。

我还想询问有关如何调试 winsock 以解决可能的服务器端套接字可用性问题的更多故障排除/调查建议/提示。

相关内容