2014-10-31 70 views
3

我嘗試使用Azure虛擬機的活動連接連接到遠程FTP服務器。我得到的錯誤是從Azure虛擬機打開活動的FTP連接

非法PORT命令。

我沒有問題連接到其他FTP站點使用被動連接,但該FTP服務器只支持活動。我的問題與this question基本相同,只是我的問題不是由Windows防火牆引起的。我通過關閉防火牆幾秒鐘並重新嘗試連接來驗證這一點,但沒有運氣。

我的理論是,這與Azure的「端點」有關,儘管我無法驗證並且我不知道如何設置它們來允許這樣做。

任何想法?

回答

4

是的,這看起來像一個丟失的端點(+入站規則,如果你想啓用防火牆)。 在主動模式下服務器連接回特定端口(由客戶端,PORT命令傳遞)上的客戶端 - longer explanation

爲了在Azure上使用主動模式,你必須:

  1. 限制你FTP客戶端使用特定的端口(或範圍)和公共IP(它在您的VM的壁紙上) eg FileZilla: enter image description here每個客戶都應該有這個選項。除非你不幸運用.NET Framework FTPWebRequest

  2. 在你的Azure的VM的Endpoint settings相同的端口(或範圍)添加端點: azure-vm-port-rage沒有辦法添加端口範圍在點擊你有一個(很煩人)

  3. 新增的每個端口一個

就是這樣。你可以運行FileZilla「網絡連接嚮導」來驗證這些設置,你應該看到類似這樣的內容:

Connecting to probe.filezilla-project.org 
Response: 220 FZ router and firewall tester ready 
USER FileZilla 
Response: 331 Give any password. 
PASS 3.9.0.6 
Response: 230 logged on. 
Checking for correct external IP address 
IP 23.102.xx.xxx cd-bac-dd-bcg 
Response: 200 OK 
PREP 6000 
Response: 200 Using port 6000, data token 1941533557 
PORT 23,102,xx,xxx,23,112 
Response: 200 PORT command successful 
LIST 
Response: 150 opening data connection 
Response: 200 Successful 
QUIT 
Response: 200 goodbye! 
+0

完美,非常感謝! – Will 2014-11-03 21:07:44