我正在尝试使用Azure VM的Active连接连接到远程FTP服务器。我得到的错误是
非法的PORT命令。
使用被动连接连接到其他FTP站点没有问题,但此FTP服务器仅支持Active。我的问题与this question基本相同,只是我的问题不是由Windows防火墙引起的。我通过关闭防火墙几秒钟并重新尝试连接来验证这一点,没有运气。
我的理论是,这与Azure“端点”有关,虽然我无法验证,但我不知道如何设置它们以允许它。
有什么想法吗?
答案 0 :(得分:4)
是的,这看起来像是一个缺失的端点(如果您想要启用防火墙,则为+入站规则)。 在活动模式下,服务器连接回特定端口上的客户端(由客户端传递,PORT命令) - longer explanation
为了在天蓝色上使用主动模式,你必须:
限制FTP客户端使用特定端口(或范围)和公共IP(它在VM的壁纸上) 例如FileZilla中: 每个客户都应该选择这个。除非你不幸并使用.NET Framework FTPWebRequest。
在Azure VM的Endpoint settings中添加具有相同端口(或范围)的端点: 无法一次添加端口范围,您必须逐个添加每个端口(非常烦人)
就是这样。您可以运行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!