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

usr*_*ΛΩΝ 3 ftp azure

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

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

usr*_*ΛΩΝ 6

目前,无法像在专用服务器中那样顺利运行被动 FTP,原因有两个:一个是 Azure 目前只允许您为每个服务器打开 25 个端点(如果我错了,请纠正我),另一个是Azure使用的LAN<->虚拟IP连接。让我们一一解决问题。

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

如果你打开了25003-25006端口(一一)你可以使用下面的配置来启用它们

pasv_enable=YES
pasv_min_port=25003
pasv_max_port=25006
Run Code Online (Sandbox Code Playgroud)

vsftpd和任何其他 FTP 服务器发出的PASV命令基本上是“在端口 AA 上连接到 XYWZ”。任何FTP服务器都应该读取机器的配置来获取网络地址:这就是为什么vsftp基本上说“在端口25003上连接到10.XYZ”,然后,为什么客户端挂了!!!

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

pasv_addr_resolve=YES
pasv_address=dom.cloudapp.net
Run Code Online (Sandbox Code Playgroud)

经过测试、工作并与社区共享!

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