使用 vsftpd-linux 在 Azure 虛擬機器中執行被動 FTP

使用 vsftpd-linux 在 Azure 虛擬機器中執行被動 FTP

如何在 Azure Linux 虛擬機器上執行被動 FTP 伺服器?

在 Azure 防火牆和 PASV 連接埠上設定端點是不夠的,因為用戶端掛在「進入被動模式」上

答案1

目前,無法像在專用伺服器中一樣順利地執行被動 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

vsftpd任何其他 FTP 伺服器發出的PASV命令基本上都是「連接到連接埠 AA 上的 XYWZ」。任何 FTP 伺服器都應該讀取機器的配置來獲取網路位址:這就是為什麼 vsftp 基本上說“連接到連接埠 25003 上的 10.XYZ”,然後,為什麼客戶端掛起!

使用以下命令告訴 vsftpd 使用不同的外部位址

pasv_addr_resolve=YES
pasv_address=dom.cloudapp.net

經過測試、工作並與社區分享!

注意:只要客戶端不在防火牆或長城後面,主動 FTP 就可以工作,並且 SFTP 是 FTP 的最佳替代方案,但不幸的是許多舊應用程式不支援它。

相關內容