1

Windows 7 から IIS を使用して ftp サーバーをセットアップしようとしています。ローカル ネットワークでは成功しましたが、公開したいと考えています。ポート 21 をポート転送しましたが、ftp サーバーを外部 (ftp://myexternalip) で開くと、ユーザー名とパスワードの入力を求められますが、ログインすると次のログが表示されます。

Command:    OPTS UTF8 ON
Response:   200 OPTS UTF8 command successful - UTF8 encoding now ON.
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is current directory.
Command:    TYPE I
Response:   200 Type set to I.
Command:    PASV
Response:   227 Entering Passive Mode (192,168,178,14,57,219).
Status: Server sent passive reply with unroutable address. Using server address instead.
Command:    LIST
Response:   150 Opening BINARY mode data connection.
Error:  Connection timed out
Error:  Failed to retrieve directory listing

その結果、ftp サーバーにデータ/ファイルがまったく表示されなくなります。ここで何が問題なのか、これを解決する方法がわかりません。また、ファイアウォールをオフにしたので、ファイアウォールが ftp サーバーをブロックしていないことも確かです。私を啓発できるより多くの知識を持っている人はいますか?

4

1 に答える 1

1

FTP プロトコルは他のプロトコルとは異なります。コマンドが送信される専用ポート (21) だけでなく (これがログインなどに使用できる理由です)、データ ペイロードの送信に自発的な他のポートを使用する点です。

これは、FTP が設計されていて、クライアントとサーバーが通常自分自身を直接認識していた (そしてファイアウォールが風変わりだった) ときには問題ではありませんでしたが、NAT がゲームを変更します。サーバーが認識するアドレス (192.168.178.14) は、インターネットからは見えません。

それを修正する唯一の方法はNATにあります。接続追跡モジュールは実際にコマンドチャネルを傍受して操作し、NATされたアドレス/ポートをパブリックアドレス/ポートに変換します。ほとんどのファイアウォール アプライアンスは、これを行う方法を知っています。

ファイアウォールで、「トリガー アプリケーション」または「FTP 転送」を探します。

于 2012-08-31T23:34:34.623 に答える