Google Compute Engine FTP防火墙

时间:2016-04-19 04:15:21

标签: ftp firewall google-cloud-platform

我在Google Compute Engine上的本地主机上正常运行FTP。我添加了防火墙规则以允许端口21,但我仍然无法从世界连接到FTP。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

FTP是一种使用多个TCP连接的复杂协议,这一功能总是会造成麻烦。端口21仅用于命令信道,但数据传输本身是使用新的TCP连接完成的,其中必要的端点(即端口号)在命令信道内被动态分配和通信。

这种行为使得无法安全地使用简单的防火墙,即您需要始终打开各种端口。更智能的防火墙提供了监视命令连接和动态打开端口的帮助程序。但即使这些松散,如果你使用加密,即FTP与TLS(FTPS),因为他们不能再检查命令连接。

因此,如果客户端和服务器之间没有任何防火墙之间存在直接连接,则FTP工作通常很好。如果一方在防火墙或NAT后面(与大多数家庭用户一样),那么在使用主动或被动FTP模式后,您可能会获得成功。但如果双方都在防火墙或NAT后面,那么你通常会失败。

我建议使用SFTP而不是使用FTP。此协议基于SSH,仅使用单个TCP连接。因此可以轻松配置防火墙。除此之外它更安全,即默认情况下所有内容都是加密的。很多像FileZilla或WinSCP这样的客户都支持它。

答案 1 :(得分:0)

您可以使用SSH将文件传输到Linux实例。如果可以从“浏览器”窗口中使用SSH与实例建立SSH连接,则可以使用该连接将文件传输到实例。

  1. 在GCP控制台中,转到“ VM实例”页面。

  2. 在虚拟机实例列表中,单击要连接到的实例行中的SSH。

  3. 建立连接后,从浏览器窗口中单击SSH右上方的齿轮图标,然后选择上载文件。或者,选择“下载文件”以从实例下载文件。

  4. 传输对话窗口打开。指定要传输的文件。

如果您上传了文件,则该文件位于用户的/ home目录中。如果您下载了文件,则该文件位于本地工作站上的默认下载文件夹中。

您还可以使用SCP在Linux上传输文件。要了解有关将文件传输到实例的更多信息,请访问此documentation