• ベストアンサー

ftpのアクティブモード対応モジュールの作成について

ftp受信サーバのftpの設定がパッシブモードとなっています。 環境の設定を変更せずにアクティブモードでのftpを実現するための モジュールを作成することは可能でしょうか? ※レジストリ等の設定を変更すれば実現可能ということは確認しました。 ftpサーバはWin2003サーバです。 またファイアウォール越しにたっています。 モジュールを作成する環境はVC++6.0です。 他に情報が必要であればご指摘ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

パッシブモードの場合は、データ転送の為のコネクションを確立するときに、サーバ側でリッスンを行い、クライアント側から接続を行います。 それに対して、アクティブモード(通常のモード)の場合は、データ転送の為のコネクションを確立するときに、クライアント側でリッスンを行い、サーバ側から接続を行います。従って、クライアント側のファイアウォールを通過できないことがあります。アクティブモードがftpのデフォルトのモードの為、ftpがファイアウォールとの相性が良くないと言われるのは、このことです。 今回の場合、パッシブモードで問題がなく、アクティブモードで、問題になるとすれば、クライアント側のファイアウォールが原因なのではないでしょうか?(自信なし) >自分がモジュールと記述したものは、VC++6.0で作ったexeを指します。 これは、ftpサーバを自前で作るということになりませんでしょうか? ftpのクライアントを自前でつくるのも大変ですが、ftpサーバをつくるのは、もっと大変です。もし、本当に作るのであれば、RFCの理解から始めるべきかと思います。私は、完全なスペックではありませんが、ftpのクライアントもどき及びサーバもどきを必要にせまられてjavaで作ったことがありますが、そのとき、このサイトを利用させて頂きました。参考になれば幸いです。

参考URL:
http://hp.vector.co.jp/authors/VA002682/rfc959j.htm
ken__t
質問者

お礼

色々お世話になりました。 結局上の人も環境上、「おそらく無理かもしれないと思ったけれど、もしかしてできるんじゃないか な?」程度で依頼をしたそうです。 代替案が既にあり、「難しそう」と調査の途中報告で代替案で行くことが決定していたそうです。 それを知らされたのはかなり後からでした。 ということで、それほど期待していなかったようです。 しかし、今回を機会に個人的に深く調べてみようと思います。 有難う御座いました。

その他の回答 (1)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

すみません、回答出来るわけではないのですが、興味があって、質問しました。 >レジストリ等の設定を変更すれば実現可能ということは確認しました。 現行のftp受信サーバがレジストリなどの変更により、アクティブモードでもファイル転送ができたということを確認したと言うことでしょうか? >環境の設定を変更せずにアクティブモードでのftpを実現するためのモジュールを作成することは可能でしょうか? このモジュールの意味がよくわかりませんが、このモジュールは現行のftp受信サーバに追加して使用するのでしょうか?もし、そうだとして、現行のftp受信サーバは、そのようなことが出来るような作りになっているのですか? それとも、現行のftp受信サーバに置き換わるものをモジュールと読んでいるのでしょうか? また、レジストリなどの環境を変えずに、アクティブモードに対応させたい理由は、何故なのでしょうか。環境を変えられない事情があるのでしょうか? 一般的には、ftpサーバは、パッシブモードでもアクティブモードでも動作する仕様で作られているはずです。(但し、windowsの場合はわかりませんが・・)ですので、ファイアウォール自体がアクティブモードでのftp通信を許可していないのではないでしょうか。

ken__t
質問者

補足

ftpに詳しい方の様ですので補足させていただきます。 緊急でこの件を調査していまして、色々はホームページを参照したところ、 レジストリでの対応可能との内容が載っていたページがあったと思います。 作業の依頼者も「それは知っている」と、自分なりの調査結果を報告したときに 指摘されました。 自分がモジュールと記述したものは、VC++6.0で作ったexeを指します。 環境に付いてですが、他にftpの処理をおこなっているものがあるため、 この案件のためだけに環境を変更することができません。 ネットワークの環境ですが、あまり詳しい情報が手に入りませんので、 ファイアウォールの設定がどのようになっているのか分かりません。 もう少し、調べてみます。 有難う御座いました。

関連するQ&A