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クライアントソフトウェアを使用する場合も同じ原則が適用されます。これが時間と労力を節約することを願っています。