我对ftplib有一个非常奇怪的问题。我正在运行Web应用程序的Ubuntu上使用一个Azure VM。第二个Azure VM(客户)运行FTP服务器。如果我尝试使用Python和ftplib连接,则FTP服务器拒绝连接。同时,我能够从同一Azure VM远程登录到FTP服务器。当我尝试与ftplib连接时,FTP服务器日志显示我的Azure VM的IP地址127.0.0.1,并在尝试与telnet连接时显示正确的IP地址。毕竟,我尝试从LAPTOP运行相同的Python应用程序,并且一切正常!客户目前不使用任何防火墙,入站规则等。 任何想法吗?
答案 0 :(得分:0)
据我了解,使用FTP命令和python ftplib连接FTP服务器之间没有区别。而且,当您通过其他位置连接FTP时,它也会影响结果。
如果您的Web应用程序VM和FTP虚拟机位于同一子网中,并且没有NSG或仅与该子网关联的NSG。您只需将FTP与FTP虚拟机专用IP连接即可。
如果您的Web应用程序VM和FTP虚拟机位于不同的子网中,并且与该子网关联的NSG。您需要添加规则以允许流量流向NSG中的FTP服务器。然后,您可以将FTP与FTP虚拟机专用IP连接起来。
如果您的Web应用程序VM和FTP虚拟机位于不同的Vnet中,以及与子网关联的NSG。您需要添加规则以允许流量流向NSG中的FTP服务器。然后,您可以将FTP与FTP虚拟机公共IP连接起来。
对于VM中的FTP服务器,您应确保FTP监听正确的端口和IP 0.0.0.0
。因此它可以通过端口接受到此虚拟机的所有流量。
如果还有其他问题,可以给我留言和评论。