我最近在 Google Compute Engine 中设置了一个新的 Windows 服务器,并尝试建立一个出站从虚拟机到互联网上托管的 FTP 服务器的不安全 FTP 连接。
我可以连接并登录,但当我尝试发送/下载文件或执行简单的目录列表时,我会收到以下错误之一:a) 远程主机关闭连接,b) 非法端口命令,或 c) 无法建立数据连接:连接被拒绝。WireShark 确认问题发生在 FTP 客户端尝试通过数据通道 TCP 端口 20 建立连接时。
我尝试过在互联网上的三个不同站点上执行此操作,它们在我的笔记本电脑和托管在 Google Compute 之外的服务器上都运行良好,并且使用不同的互联网连接,没有任何问题。我还尝试配置系统以使用 SOCKS 代理服务器进行 FTP,并得到了相同的结果。我还尝试通过站点到站点 VPN 将流量路由到另一个站点的路由器,在那里我可以成功连接到 FTP 服务器。
我最终从 Google Compute Engine VM 到另一个站点的路由器建立了 L2TP/IPSec Windows 客户端 VPN 连接,并能够成功访问 FTP 站点。我已经多次查看过 Google Compute Engine 中的防火墙规则和路由。
有谁知道 Google 有阻止出站不安全 FTP 连接的政策吗?我知道他们本质上强制执行安全邮件连接,我想知道这里是否适用类似的政策。我也更喜欢安全 FTP,但在这种情况下,另一端的供应商仅支持不安全的 FTP。
先感谢您。
答案1
正如 Julie Pelletier 在她的评论中提到的,您的 ftp 问题应该与您的 Windows VM 内部防火墙有关。您需要添加适当的防火墙规则才能正确建立 FTP 连接。FTP 连接可以在Active
或Passive
模式下建立。应根据连接模式规划和添加防火墙规则。您可以在此处阅读有关这些模式的信息stackoverflow 线程。
关于您评论中的其他问题,是的,Google Compute Engine 不允许在端口 25、465 和 587 上进行出站连接。默认情况下,这些出站 SMTP 端口被阻止,因为这些端口容易受到大量滥用。您可以在本文。