Ubuntu

Azure VM 上的 vsftp - filezilla 報告伺服器以被動模式發送的私有 ip

  • March 29, 2019

我在 Azure 上的 Ubuntu 16.04 機器上設置了一個安全的 FTP 伺服器。它是基於 TLS 的 FTP,已禁用匿名訪問。

嘗試使用 Filezilla 使用伺服器工作正常 - 身份驗證、傳輸、目錄列表 - 一切……除了我從 Filezilla 收到以下警告:

伺服器發送了帶有不可路由地址的被動回复。改用伺服器地址。

當然,這是有道理的——VM 有一個私有 IP 地址,在被動模式下,它會將​​該私有 IP 地址發送給客戶端。解決方案 - 將以下內容添加到 vsftp.conf(這是一個範例,不是實際配置):

pasv_enable=YES
port_enable=YES
#The VM allows connections to ports 12345 & 12346 - remember, this is an example
pasv_min_port=12345 
pasv_max_port=12346
#The VM's domain name
pasv_address=myftpservervm.cloudapp.net
#Make vsftp resolve myftpservervm.cloudapp.net and send that IP address to clients
pasv_addr_resolve=YES

然後我重新啟動 vsftp,然後……什麼也沒有發生。我仍然得到這些:

伺服器發送了帶有不可路由地址的被動回复。改用伺服器地址。

我什至嘗試設置pasv_address伺服器的確切(外部)IP 地址(有和沒有pasv_addr_resolve=YES),結果是一樣的。

我錯過了什麼嗎?

我在 Ubuntu 16.04 x64 上使用 vsftpd 3.0.3(來自 Ubuntu 儲存庫)和 Filezilla 3.24.0

編輯:

0.0.0.0顯然 vsftp在進入被動模式時會發送一個 IP 地址。這個問題似乎是相關的。

我在我的實驗室測試,一開始我遇到了和你一樣的問題。我檢查了以下步驟:

1.netstat -ant我得到以下結果

tcp6       0      0 172.17.1.4:21           167.220.255.56:10979    TIME_WAIT  

根據我的經驗,ftp 應該tcp不在tcp6Azure VM 上監聽

2.我嘗試更改配置文件/etc/vsftpd.conf

listen=yes
listen_ipv6=no

然後我重新啟動 ftp 服務並使用netstat -ant

tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN  
  1. 使用 Filezilla 進行測試。

在此處輸入圖像描述

注意:您應該在 Azure NSG(入站規則)上打開埠 20、21、12345-12346

引用自:https://serverfault.com/questions/830866