尝试连接到部署在 Azure VM 上的 FTP 服务器时出错

尝试连接到部署在 Azure VM 上的 FTP 服务器时出错

尝试连接到部署在 Azure VM 上的 FTP 服务器时出现以下错误。

Warning: Selected port (18183) is not the default port (21) of the selected protocol.
Warning: The entered address does not resolve to an IPv6 address.
Status: Connected, waiting for welcome message...
Reply: 220-FileZilla Server 0.9.56 beta
Reply: 220-written by Tim Kosse ([email protected])
Reply: 220 Please visit https://filezilla-project.org/
Command: CLNT https://ftptest.net on behalf of 168.63.97.45
Reply: 200 Don't care
Command: AUTH TLS
Reply: 234 Using authentication type TLS
Status: Performing TLS handshake...
Status: TLS handshake successful, verifying certificate...
Command: USER Usera
Reply: 331 Password required for rheinenergie-klima
Command: PASS **********************
Reply: 230 Logged on
Command: SYST
Reply: 215 UNIX emulated by FileZilla
Command: FEAT
Reply: 211-Features:
Reply: MDTM
Reply: REST STREAM
Reply: SIZE
Reply: MLST type*;size*;modify*;
Reply: MLSD
Reply: AUTH SSL
Reply: AUTH TLS
Reply: PROT
Reply: PBSZ
Reply: UTF8
Reply: CLNT
Reply: MFMT
Reply: EPSV
Reply: EPRT
Reply: 211 End
Command: PBSZ 0
Reply: 200 PBSZ=0
Command: PROT P
Reply: 200 Protection level set to P
Command: PWD
Reply: 257 "/" is current directory.
Status: Current path is /
Command: TYPE I
Reply: 200 Type set to I
Command: PASV
Reply: 227 Entering Passive Mode (100,113,144,72,210,89)
Command: MLSD
Reply: 425 Can't open data connection for transfer of "/"
Error: Listing failed

我尝试在几个论坛上查找,但找不到具体的答案。到目前为止,我已经尝试了主动和被动模式,并通过以下方式进行测试https://ftptest.net

我已启用 FTP over TLS,并且也生成了证书。

我的端口的入站规则(18183 也已添加)。

注意:我没有使用 FileZilla 服务器建议的端口。

答案1

您提供的错误日志显示您的 FTP 客户端正在使用以下方式连接到 FTP 服务器被动模式

在此模式下,FTP客户端使用2个通道:

  • 控制通道(在您的例子中监听端口 18183),向服务器发出命令
  • 数据通道(按照命令所示监听端口100,113,144,72,210,89 PASV),发送/接收数据

这种双通道模式允许在发送/接收数据时仍然能够发出命令。

就您而言,我怀疑您的虚拟机和/或网络安全组(如果您使用)中的某些端口未打开。因此,您需要创建相应的 ACL(访问控制列表)或更新与虚拟机关联的网络安全组中的入站规则,以允许对端口 100、113、144、72、210、89 进行 TCP 访问。

答案2

我们也遇到了同样的问题,因为我们的 Azure RM 虚拟机位于 AVSET 中的互联网负载均衡器后面,并且所有 NSG 规则都在特定端口上打开,Windows 防火墙已关闭。数据通道端口的正确定义请参见http://www.serv-u.com/respcode.asp?resp=227

错误:您似乎位于 NAT 路由器后面。请配置被动模式设置并转发路由器中的一系列端口。

答案:我使用 filezilla 服务器,通过在与数据通道端口范围相同的端口上添加负载均衡器上的 NAT 规则,使其正常工作。您也可以使用 PS 来实现这一点$LoadBalancer | Add-AzureRmLoadBalancerInboundNatRuleConfig -Name $NatRuleName -FrontendIpConfiguration $frontendIP1 -IdleTimeoutInMinutes 4 -Protocol TCP -FrontendPort 5000 -BackendPort 5000 | Set-AzureRmLoadBalancer

相关内容