FTPアップロードが1か所以外で失敗する

FTPアップロードが1か所以外で失敗する

あるサーバーから別のサーバーに Web サイトを移行しようとしているのですが、新しいサーバーで FTP の問題が発生しています。このサイトには、社内ソフトウェアによって FTP でプッシュされたコンテンツがあります。FTP の使用は絶対にお勧めできないことは承知していますが、当面は他に選択肢がありません。FTP は問題なくセットアップでき、FileZilla、Cyber​​Duck、FTP ターミナル クライアントを使用してファイルを正常に転送できますが、弊社のソフトウェアを使用すると、オフィスのネットワークを使用している場合を除き、ログインして 0 バイトのファイルを作成し、毎回タイムアウト (ETIMEDOUT) します。4G ドングル、VPN、自宅などでこれを実行しましたが、失敗します。

当社のソフトウェアで使用されるFTPクライアントはjsftpはパッシブモードでのみ機能するため、アクティブに切り替えることはできません。このソフトウェアは macOS で動作します。

以前のサーバーはどこからでも問題なく動作し、pure-ftpd を使用する MediaTemple 共有 Debian マシンでした。移行先の新しいサーバーは Ubuntu 16.04 を実行しており、Google Cloud Platform でホストされています。vsftpd と pure-ftpd の両方を使用しました。個人アカウントでセットアップした別の Google Cloud サーバーを使用してみましたが、同じ問題が発生します。

この問題のどこに問題があるのか​​わかりません。ソフトウェアは古いサーバー上ではまったく問題なく動作し、オフィスで使用する場合は Google サーバー上でもまったく問題なく動作します。Google サーバーは他の多数のクライアントからもアクセスでき、オフィス内外を問わず動作します。この特定の状況についてはオンラインで何も見つけることができないので、アイデアがあれば教えてください。

答え1

ファイルが 0 バイトでタイムアウトするとおっしゃいました。ソフトウェアが書き込んでいるディレクトリのファイル権限を確認しましたか?

答え2

この問題はサーバー側で修正しました。FileZilla を使用した場合、ソフトウェア経由でアップロードできない接続では、「サーバーはルーティングできないアドレスでパッシブ応答を送信しました。代わりにサーバー アドレスを使用します。」というメッセージが返されることに気付きましたが、ソフトウェアが機能する接続ではこのメッセージは表示されませんでした。

そこで、サーバーの IP アドレスをパッシブ モード (pure-ftpd の ForcePassiveIP) に設定したところ、意図したとおりに動作するようになりました。

答え3

GCP で VM を起動するときは、ファイアウォール ルールを更新する必要があります。

  • 入力: TCP 20,21,60000-65535
  • 送信: TCP 20,21,60000-65535

次に、FTP を更新して、パッシブ ポート範囲 60000-65535 を使用します。次に、クライアント側でパッシブ モードを使用します。詳細と手順 -Ubuntu 16.04 の新機能

関連情報