无法使用 Debian 通过 FTP 访问 Google Compute Engine 实例

无法使用 Debian 通过 FTP 访问 Google Compute Engine 实例

尝试在我的 google 计算引擎实例上设置 vsftpd 后,我无法完全连接到 FTP 服务器。尝试使用 FileZilla 登录后,我收到以下响应:

Status: Connecting to ***.***.***.***:21...
Status: Connection established, waiting for welcome message...
Response:   220 (vsFTPd 2.3.5)
Command:    USER anonymous
Response:   331 Please specify the password.
Command:    PASS **************
Response:   230 Login successful.
Command:    SYST
Response:   215 UNIX Type: L8
Command:    FEAT
Response:   211-Features:
Response:    EPRT
Response:    EPSV
Response:    MDTM
Response:    PASV
Response:    REST STREAM
Response:    SIZE
Response:    TVFS
Response:    UTF8
Response:   211 End
Command:    OPTS UTF8 ON
Response:   200 Always in UTF8 mode.
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/"
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PASV
Error:  Connection timed out
Error:  Failed to retrieve directory listing

请注意,这是 vsftpd 的全新安装。

答案1

解决方案是在配置文件中限制 vsftpd 为 PASV 样式数据连接分配的端口。在 vsftpd.conf 中,添加这两行:

pasv_min_port=12000

pasv_max_port=12100

然后,您需要在 Google Developers Console 的“网络”、“防火墙规则”下打开这些端口(见图)。

在此输入图像描述

您可能还需要添加以下行来覆盖 vsftpd 为响应 PASV 命令而通告的 IP 地址:

pasv_地址=xxx.xxx.xxx.xxx

您输入 VM 实例的外部 IP。

出于安全原因,我还使用 FTP 端口 211 而不是 21:

监听端口=211

答案2

看来google计算机引擎默认已经有SFTP服务了。以下是使用 WinSCP 作为 SFTP 客户端连接到服务的优秀分步说明。第一次尝试时它对我来说非常有效。

http://winscp.net/eng/docs/guide_google_compute_engine

同样的原则也适用于使用其他 FTP 客户端软件。希望能节省一些时间和精力。

相关内容