使用vsftpd-linux在Azure虚拟机中运行被动FTP

如何在Azure Linux虚拟机上运行被动FTP服务器?

在Azure防火墙和PASV端口上configuration端点是不够的,因为客户端挂在“进入被动模式”

目前,在专用服务器上运行被动FTP是非常顺利的,因为有两个原因:一是Azure目前允许您为每台服务器只打开25个端点(请纠正我的错误)另一个是Azure使用的LAN < – >虚拟IP连接。 让我们一个一个的解决问题。

Azure目前实现了NAT /防火墙/负载均衡器,可将来自外部虚拟IP的stream量转发到内部networking地址( 10.0.0.0/8类)。 如果你在虚拟机上运行ifconfig ,你会发现我在说什么。 一个端点保留给SSH,我不相信你真的想禁用它。 因此,如果另一个端点保留到端口21,则只能使用23个PASV端口(只要您不托pipe任何其他服务),严格限制可同时连接的客户端的数量。 一旦你接受这个,让我们继续。

如果您打开端口25003-25006(一个接一个),则可以使用以下configuration启用它们

 pasv_enable=YES pasv_min_port=25003 pasv_max_port=25006 

vsftpd和任何其他FTP服务器发出一个基本上说“连接到端口AA的XYWZ”的PASV命令。 任何FTP服务器应该读取机器的configuration,以获得networking地址:这就是为什么vsftp基本上说“连接到端口25003 10.XYZ”,然后,为什么客户端挂起!

使用以下命令来告诉vsftpd使用不同的外部地址

 pasv_addr_resolve=YES pasv_address=dom.cloudapp.net 

testing,工作,并与社区共享!

注意:只要客户端不在防火墙或长城后面,主动FTP就会工作,而SFTP是FTP的最佳替代品,但不幸的是许多传统应用程序不支持它。