Debianを使用してFTPを介してGoogle Compute Engineインスタンスにアクセスすることはできません。

Debianを使用してFTPを介してGoogle Compute Engineインスタンスにアクセスすることはできません。

Google Compute Engine インスタンスで 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

解決策は、設定ファイルでPASVスタイルのデータ接続にvsftpdによって割り当てられたポートを制限することです。 vsftpd.conf に次の 2 行を追加します。

pasv_min_port=12000

pasv_max_port=12100

次に、Google Developers Consoleの「ネットワーク」、「ファイアウォールルール」で対応するポートを開く必要があります(図を参照)。

ここに画像の説明を入力してください。

PASV コマンドに応答して vsftpd が広告する IP アドレスをオーバーライドするには、次の行を追加する必要があります。

pasv_address=xxx.xxx.xxx.xxx

VMインスタンスの外部IPを入力します。

セキュリティ上の理由から、FTPポート21の代わりに211も使用します。

受信ポート=211

答え2

Google Computer Engineには既にデフォルトでSFTPサービスがあるようです。以下は、WinSCPをSFTPクライアントとして使用してサービスに接続するための優れたステップバイステップのガイドラインです。初めて試したときは本当にうまくいきました。

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

他のFTPクライアントソフトウェアを使用する場合も同じ原則が適用されます。これが時間と労力を節約することを願っています。

関連情報