2014-10-31 94 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