0

Windows AWS EC2インスタンスでFTPスクリプトを実行してファイルをダウンロードしようとしていますが、ファイアウォール設定のためにインバウンド接続がブロックされています。誰かが、インバウンド接続を許可するために必要な適切なファイアウォール構成を提案できますか。

ファイアウォール設定のリセットをクリックしたことがあり、そのインスタンスのリモートログインアクセスを失い、それを終了して新しい設定を作成する必要があったため、これらの設定を試してみるのが怖いです。

ありがとうございました。

@echo off
echo user  username > ftpcmd.dat
echo password >> ftpcmd.dat
echo binary >>ftpcmd.dat
echo cd /Outbound/Archive >>ftpcmd.dat
echo prompt n >>ftpcmd.dat
echo get DATA_FEED.xml C:\Users\user\Desktop\Test.xml >> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat ftp.server.com
del ftpcmd.dat

以下は、Ec2ファイアウォール設定のスクリーンショットです

4

2 に答える 2

1

簡単な解決策:

追加してみてください

echo quote pasv >> ftpcmd.dat

送信直前binary

説明:

PASV接続をパッシブモードに設定します。パッシブモードでは、サーバーからの着信接続は必要ありません。これは、単純なクライアントサーバー接続のように機能します。

アクティブモードでは、クライアントはサーバーに接続し(この場合はログインに成功します)、サーバーに自身のIPアドレスとランダムポート(通常は1023以上)を通知します。サーバーはクライアントに接続してデータを転送します。ファイアウォールの背後にいるため、これは失敗します。

于 2013-01-07T17:26:58.930 に答える
1

AWS ドキュメントには -

ファイル転送プロトコル (FTP) には、クライアントがそのアドレスをサーバーに送り返す PORT コマンドがあります。次に、サーバーはそのアドレスでクライアントに接続し、ファイル データを送信します。クライアントが自身の内部アドレスを検索してサーバーに送信すると、接続は失敗します。この特定のケースでは、問題に対する 2 つの解決策があります。まず、パブリック IP アドレスを送信するようにクライアントを構成します。次に、クライアントは、サーバーからクライアントへではなく、サーバーへの接続のみを行う「パッシブ FTP」を使用できます。一般に、外部サーバーに送信されるデータのローカル アドレスとポート番号をエンコードするアプリケーションでは、NAT で問題が発生する可能性があります。内部アドレスではなく、公開アドレスを送信するように常に注意する必要があります。FTP サーバーでサポートされていない場合を除き、パッシブ モードを使用することをお勧めします。

AWS インスタンスのパブリック IP を公開しようとはしませんでした。また、FTP.EXE がパッシブ モードをサポートしていないことがわかっているため、NcFTP を使用してファイルをダウンロードできました。

于 2013-01-09T08:44:46.857 に答える